我试图找到一种方法来获得一个工厂类/方法,它将接受一个对象或某种标识符(字符串或类型),然后根据输入参数确定要创建和返回的接口的哪个实现。
如何设置我的工厂方法并注册接口的依赖项?以下是我的粗略内容。
public class ISampleFactory
{
public ISample GetSample(Type type)
{
// do something here to return an implementation of ISample
}
}
public class SampleA : ISample
{
public void DoSomething();
}
public class SampleB : ISample
{
public void DoSomething();
}
public interface ISample
{
void DoSomethin();
}
答案 0 :(得分:0)
查看ninject Contextual Bindings文档: 您可以使用命名绑定:
this.Bind<ISample>().To<SampleA>().Named("A");
this.Bind<ISample>().To<SampleB>().Named("B");
或与任何已有扩展程序的条件绑定或编写自己的扩展程序:
this.Bind<ISample>().To<SampleA>().When(...);
this.Bind<ISample>().To<SampleB>().When(...);
请参阅https://github.com/ninject/ninject/wiki/Contextual-Binding