Настройте ServiceCollection через файл JSON - PullRequest
0 голосов
/ 13 мая 2018

Существует ли пример настройки внедрения зависимостей в .NET Core 2.0 через файл JSON, который будет содержать interface -> сопоставления классов ?Например,

var someServiceConfigBuilder = new ConfigurationBuilder();
someServiceConfigBuilder.AddJsonFile("someservice.json");
var someServiceConfig = someServiceConfigBuilder.Build();

var services = new ServiceCollection();
services.AddOptions();
services.Configure<SomeServiceOptions>(someServiceConfig);
services
    // TODO this should really come from the JSON config file
    .AddTransient<ISomeService, SomeService>();

Поэтому, вместо того, чтобы жестко кодировать сопоставления с вызовами AddTransient(), было бы здорово получить эту информацию из файла JSON.

Поддерживается ли это?Если да, каков ожидаемый формат конфигурации JSON?

1 Ответ

0 голосов
/ 13 мая 2018

Замена контейнера служб по умолчанию

Контейнер встроенных услуг предназначен для удовлетворения основных потребностей фреймворк и большинство пользовательских приложений, построенных на нем . Тем не мение, разработчики могут заменить встроенный контейнер своим предпочтительным контейнер. Метод ConfigureServices обычно возвращает void, но если его подпись изменена, чтобы вернуть IServiceProvider, другой Контейнер можно настроить и вернуть. Есть много МОК контейнеры для .NET.

(Акцент мой)

Ссылка: Введение в внедрение зависимостей в ASP.NET Core

При этом я бы предложил проверить, существуют ли уже сторонние DI-структуры, которые предоставляют эту функцию и имеют расширение, которое может интегрироваться с .Net Core.

Примечание

При использовании стороннего DI-контейнера необходимо изменить ConfigureServices, чтобы он возвращал IServiceProvider вместо void.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...