我在我的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