Ninject构造函数参数取决于上下文
本文关键字:上下文 取决于 参数 构造函数 Ninject | 更新日期: 2023-09-27 18:28:51
我有
interface IConfigurationSource
{
....
}
和
class FileConfigurationSource : IConfigurationSource
{
FileConfigurationSource(string fileName)
{
...
}
}
我必须在两个不同的地方使用FileConfigurationSource
,比如ClassA中的"Config1.xml"和ClassB中的"Config2.xml"。我如何使用ninject根据上下文提供正确的参数,或者这违反了IoC/DI模式?
谢谢,
WhenjectedInto可用于更改在不同目标中注入的内容。这并不违反IoC IMHO,因为你让其他人负责确定依赖关系,而不是类本身。
类似的东西
IConfigurationSource source2 = new FileConfigurationSource("Config2.xml");
kernel.Bind<IConfigurationSource>().ToConstant(source2).WhenInjectedInto<ClassB>();