J'ai deux services qui exigent un XPathDocument
. Je veux être en mesure de définir les instances nommées de XPathDocumnet
à utiliser dans la configuration des deux services. Je veux aussi être capable de dire StuctureMap quel constructeur de XPathDocument
à utiliser. Lorsque j'essaie d'obtenir une instance de l' XPathDocument
il me dit qu'il ne peut pas trouver le branché type pour XmlReader
. Je veux utiliser le constructeur qui nécessite une chaîne uri du fichier xml. Je n'arrive pas à obtenir que cela fonctionne. Voici la StructureMap code de configuration.
public class Service1 : IService1 {
public Service1(XPathDocument document) {}
}
public class Service2 : IService2 {
public Service2(XPathDocument document) {}
}
public class Registry1 : Registry {
ForRequestedType<IService1>().TheDefault.Is.OfConcreteType<Service1>()
.CtorDependency<XPathDocument>()
.Is(x => x.TheInstanceNamed("XPathDocument1"));
ForRequestedType<IService2>().TheDefault.Is.OfConcreteType<Service2>()
.CtorDependency<XPathDocument>()
.Is(x => x.TheInstanceNamed("XPathDocument2"));
ForRequestedType<XPathDocument>().AddInstances(x => {
x.OfConcreteType<XPathDocument>()
.WithCtorArg("uri").EqualToAppSetting("XmlFile1")
.WithName("XPathDocument1");
x.OfConcreteType<XPathDocument>()
.WithCtorArg("uri").EqualToAppSetting("XmlFile2")
.WithName("XPathDocument2");
});
}