Внедрение зависимостей в библиотеки классов?C#

Место общения программистов C#
Ответить
Anonymous
 Внедрение зависимостей в библиотеки классов?

Сообщение Anonymous »


Я пытался найти простые решения для внедрения зависимостей в библиотеки классов.

Я попытался решить эту проблему с помощью простого решения, и оно, кажется, работает нормально.

Вот что я сделал.
[*]Создайте глобальный статический класс (в отдельной библиотеке классов): Пространство имен
CompositionRoot { Зависимости публичного статического класса { общедоступный статический IServiceProvider? Поставщик услуг = ноль; } } [*]Создайте службу и добавьте ее в IServiceCollection (из Main). IServiceCollection Services = new ServiceCollection(); IScriptRepository scriptRepository = новый ScriptRepository( SensorDataConnectionString, "скрипты", ControllerName, _logger); Services.AddSingleton(scriptRepository); [*]Создайте IServiceProvider и добавьте его в CompositionRoot (из Main): IServiceProvider serviceProvider = Services.BuildServiceProvider(); CompositionRoot.Dependities.ServiceProvider = serviceProvider; [*]"Внедрить" объект службы (в другую библиотеку классов) частный IScriptRepository только для чтения _scriptRepository; общественный BuildingController() { _scriptRepository= CompositionRoot.Dependities.ServiceProvider!.GetService()!; } Я продолжаю читать, что это может быть «анти-шаблон», но не совсем понимаю, почему.

Каковы потенциальные проблемы при таком подходе?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»