Универсальный поставщик FactoryMethod Instance с Lightinject - PullRequest
0 голосов
/ 21 апреля 2019

В моем предыдущем проекте я использовал Ninject для достижения автогенерации действий. У меня был общий интерфейс ActionsFactory, который выглядел так:

public interface IActionsFactory
{
    TAction GetAction<TAction>();
}

Ninject был настроен для привязки этого интерфейса к фабрике:

kernel.Bind<IActionsFactory>().ToFactory(() => new GenericFactoryMethodInstanceProvider());

public class GenericFactoryMethodInstanceProvider : StandardInstanceProvider
{
    protected override string GetName(MethodInfo methodInfo, object[] arguments)
    {
        return null;
    }
}

При этом я мог ссылаться на своих контроллерах только на IActionFactory, без необходимости ссылаться на все действия, например:

public class SomeController : ApiController
{
    private readonly IActionsFactory 

    public SomeController(IActionsFactory actionsFactory)
    {
        this.actionsFactory = actionsFactory;
    }

    [HttpGet]
    public async Task<Foo> GetFoo()
    {
        retutn await actionsFactory.GetAction<IFooAction>().GetSomeFoo();
    }
}

Вопрос: как мне добиться чего-то похожего с Lightinject?

...