Я использую Ninject в своем веб-api. У меня есть следующая проблема. Допустим, есть два контроллера api (ControllerA и ControllerB). Оба зависят от MyClass, и MyClass зависит от ClientFactory и ClientFactory зависит от Resolver.Инъекционная инъекционная зависимость на основе контроллера
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 –