を必要とする 2 つのサービスがありますXPathDocument
。XPathDocumnet
2 つのサービスの構成で使用する名前付きインスタンスを定義できるようにしたいと考えています。また、どのコンストラクターを使用するかを StuctureMap に伝えたいと考えていXPathDocument
ます。のインスタンスを取得しようとするとXPathDocument
、 の差し込まれたタイプが見つからないことがわかりますXmlReader
。xml ファイルの文字列 uri を必要とするコンストラクターを使用したいと考えています。私はこれを機能させることができないようです。StructureMap 構成コードは次のとおりです。
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");
});
}