0
我使用Ninject,面向使用静态构造函数 方法,而不是一个普通的构造函数有一个图书馆的问题:Ninject和静态构造函数方法
Kernel.Bind<IDocumentService>().ToMethod(
x => CoDocumentService.Create(x.Kernel.Get<IMessage>(),x.Kernel.Get<IClientChannel>())
).InRequestScope();
现在的问题是,是IMessage
和IClientChannel
略根据Service
(即IDocumentService
,IAccountService
)的种类而不同地实施。然而,我不能区分IMessage
/IClientChannel
的背景。我需要一种能够知道这种实例将被使用的方式。
this.Kernel
.Bind<IClientChannel>()
.To<Something>()
.WithPropertyValue("Something",x => {"Depends on where this instance is going to be used"});
有没有人有想法?
你可以提供一个更详尽的例子吗?你有多个IClientChannel接口的实现,例如: 'SimpleChannel'和'SmartChannel',你想根据它是注入到'IDocumentServier'还是'IAccountService'来选择不同的实现?或者我误解了你的问题?你想用这行代码实现什么:'WithPropertyValue(“Something”...'? – nemesv