C# Unity:为InjectionConstructor提供参数
我正在使用Unity解析一个存储库,该存储库在参数中需要两个工厂类。下面是我的存储库构造函数:C# Unity:为InjectionConstructor提供参数,c#,dependency-injection,unity-container,C#,Dependency Injection,Unity Container,我正在使用Unity解析一个存储库,该存储库在参数中需要两个工厂类。下面是我的存储库构造函数: //repo constructor public MyRepo(IChannelClientFactory<IRemotedVisitorChat> chatFactory, IChannelClientFactory<IRemotedVisitorWebsite> siteFactory ) { ChatFactory = chat
//repo constructor
public MyRepo(IChannelClientFactory<IRemotedVisitorChat> chatFactory, IChannelClientFactory<IRemotedVisitorWebsite> siteFactory )
{
ChatFactory = chatFactory;
SiteFactory = siteFactory;
}
以前,RemotingClientFactory有一个无参数构造函数,但在进行重构时,我添加了字符串endpointName
我是这样注册我的存储库的:
container.RegisterType<IMyRepo, MyRepo>(new HierarchicalLifetimeManager(), new InjectionConstructor(typeof (RemotingClientFactory)));
container.RegisterType(新层次结构CallifeTimeManager(),新注入构造函数(typeof(RemotingClientFactory));
最初,MyRepo构造函数只有一个参数,RemotingClientFactory的构造函数没有任何参数
我在野草中迷了路,正在读《联合文件》。如何为RemotingClientFactory提供初始化字符串?首先,您需要注册您的
iChannelClient Factory
实现,并为每个实现指定要使用的endpointName
值。(以下字符串值应替换为希望使用的endpointName
值)
您是否尝试过半手动的
InjectionFactory
方法?如果我能找到我试图做的事情的答案,我将使用该方法分别是ChatFactory
和SiteFactory
从RemotingClientFactory
和RemotingClientFactory
派生的每个类?
container.RegisterType<IMyRepo, MyRepo>(new HierarchicalLifetimeManager(), new InjectionConstructor(typeof (RemotingClientFactory)));
container.RegisterType<IChannelClientFactory<IRemotedVisitorChat>, RemotingClientFactory<IRemotedVisitorChat>>(new InjectionConstructor("ChatEndpointName"));
container.RegisterType<IChannelClientFactory<IRemotedVisitorWebsite>, RemotingClientFactory<IRemotedVisitorWebsite>>(new InjectionConstructor("WebsiteEndpointName"));
container.RegisterType<IMyRepo, MyRepo>();