Внедрение зависимостей .Net, как избежать нового внутри класса обслуживанияC#

Место общения программистов C#
Anonymous
Внедрение зависимостей .Net, как избежать нового внутри класса обслуживания

Сообщение Anonymous »

У меня общий вопрос о внедрении зависимостей в .NET Core (я использую .NET 8).
У меня уже есть некоторый опыт работы с серверным приложением .NET Blazor, и я знаю разница между

Код: Выделить всё

services.AddTransient();
services.AddScoped< IMyService, MyService>();
services.AddSingleton< IMyService, MyService >();
Три строки выше влияют на количество экземпляров класса MyService.
(новый экземпляр для каждого клиентский вызов, или только один для каждого нового пользователя, или только один для всех пользователей и клиентов).
Пока все хорошо, но теперь мой вопрос: скажем, в MyService code> class Мне нужно создать экземпляр одного или нескольких объектов другого класса (

Код: Выделить всё

MyUserClass
) в зависимости от различных входных параметров. Например, в цикле. Я бы так и сделал

Код: Выделить всё

myUserObj = new MyUserClass();
Но я читал, что с помощью DI мы никогда не должны использовать «новый».
Но как я могу создать экземпляр класса MyUserClass в зависимости от разные параметры с DI внутри класса MyService?
И вторая проблема заключается в том, как внедрить ILogger в MyUserClass при вызове

Код: Выделить всё

myUserObj = new MyUserClass();
Думаю, я упустил некоторые основы, и я был бы очень признателен, если бы кто-нибудь помог мне в этом вопросе.
Спасибо и с уважением
Япония

Подробнее здесь: https://stackoverflow.com/questions/781 ... vice-class

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