C# - инъекция интерфейса может привести к нулевой службеC#

Место общения программистов C#
Ответить
Anonymous
 C# - инъекция интерфейса может привести к нулевой службе

Сообщение Anonymous »

Я на .NET 8, используя microsoft.extensions.dependencyInction версии 9.0 < /p>
Предположим, что у меня есть интерфейс, определенный так: < /p>

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

public interface IMyInterface
{
string GetName();
}
и я зарегистрируюсь, используя этот метод .AddScoped () , но завод возвращает NULL, что означает, что интерфейс не будет связан с услугами. Код, подобный ниже, не имеет никакого смысла в реальном мире, но в моем использовании я динамически решаю, какой сервис использовать, а иногда нет ни одного, чтобы использовать.
Итак, ради иллюстрации: < /p >
services.AddScoped(typeof(IMyInterface), p =>
{
return null;
});
< /code>
В этом сценарии, когда я вводит imyinterface в конструктор, он не может разрешить службу, поэтому он возвращает NULL. < /p>
public class TestService(IMyInterface service)
{
public string Test() =>service.GetName();
}
< /code>
он работает с ним вводится как imyinterface или imyinterface?. Ничто в структуре DI не бросает исключение. Я наполовину ожидал, что это не терпит этого. Исключение.
Но это неправильно или против паттерна?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ll-service
Ответить

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

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

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

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

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