Как создать библиотеку, которая использует DI внутри и использовать в проекте, который не использует DI? - PullRequest
0 голосов
/ 17 января 2020

Ребята,

Мне нужно создать библиотеку в проекте, который использует DI для внутреннего использования, например:

Библиотека

namespace Library
{
    public class SomeService : ISomeService
    {
        private readonly IOtherService _otherService;

        public SomeService(IOtherService otherService,
                             IConfiguration configuration) { /* constructor stuff */ }

       //... class stuff

    }
}

Но он будет использоваться как пакет nuget в другом проекте, который не использует DI напрямую.

Каков наилучший способ разрешения зависимостей этой библиотеки и создания экземпляра службы на клиенте проект?

Я подумываю о создании точки входа с шаблоном ServiceLocator и предоставлении ее клиенту, это единственный (или лучший) способ для этой работы?

Есть ли другая способ построить библиотеку, как это?

РЕДАКТИРОВАТЬ: я использую DI-фреймворк для внутренней связи классов внутри библиотеки. И клиентский проект имеет запуск, регистрирующий зависимости, но классы не готовы к приему экземпляров в конструкторе.

...