Каков эквивалентный код для основной структуры DI asp.net из этого примера с использованием Ninject? - PullRequest
1 голос
/ 22 мая 2019

Я изучал использование шаблона CQS с EF Core в веб-приложении asp.net Core.

Я нашел этот образец, который, как мне кажется, и нужен, однако используемый контейнер DI - Ninject.

Не получается перевести конфигурацию Ninject во встроенный DI-контейнер в ядре asp.net.

В частности, моя проблема с этими строками:

Bind<IQueryFactory>().ToMethod(t => new QueryFactory(x => Container.Current.Resolve(x))).InTransientScope();
            Bind<ICommandsFactory>()
                .ToMethod(t => new CommandFactory(x => (object[]) Container.Current.ResolveAll(x)))
                .InTransientScope();

Я получил это далеко:

services.AddTransient<IQueryFactory>(qf => new QueryFactory(q => q));

Но я не уверен, как на самом деле сделать эту часть в контейнере asp.net core di:

Container.Current.Resolve(x)

1 Ответ

1 голос
/ 23 мая 2019

Казалось бы, я переосмыслил это и решил свою проблему.

services.AddTransient<IQueryFactory>
    (serviceProvider => new QueryFactory(serviceProvider.GetService));
...