我在我的web api中使用Ninject。我有以下问题。假设有两个api控制器(ControllerA和ControllerB)。两者都依赖于MyClass,MyClass依赖于ClientFactory,ClientFactory依赖于Resolver。Ninject基于控制器注入依赖项
public class MyClass
{
public MyClass(IClientFactory clientFactory)
{ ... }
}
public interface IClientFactory
{
Client CreateClient();
}
public class ClientFactory : IClientFactory
{
private readonly IResolver _resolver;
public ClientFactory(IResolver resolver)
{
_resolver = resolver;
}
...
}
public class ResolverA : IResolver
{
}
public class ResolverB : IResolver
{
}
public ControllerA : ApiController
{
public ControllerA(MyClass myClass)
{
...
}
}
public ControllerB : ApiController
{
public ControllerB(MyClass myClass)
{
...
}
}
我想用ResolverA在ClientFactory时MyClass的注入ControllerA和ResolverB在ClientFactory时MyClass的注入ControllerB。可以用Ninject配置吗?
谢谢。
你看过上下文绑定了吗?https://github.com/ninject/ninject/wiki/Contextual-Binding – 2014-12-03 10:36:49