Как разрешить дополнительные службы с помощью Microsoft.Extension.DependencyInjection?C#

Место общения программистов C#
Ответить
Anonymous
 Как разрешить дополнительные службы с помощью Microsoft.Extension.DependencyInjection?

Сообщение Anonymous »

Я играю с ASP.NET Core в своем собственном хобби-проекте, я хочу создать платформу, которая будет использоваться разработчиком, и я хочу разрешить дополнительные службы и использовать значения по умолчанию, если они не зарегистрированы.

Я получаю сообщение об ошибке «Невозможно разрешить службу для типа 'XXX», но я бы предпочел, чтобы DI возвращал ноль, а не выдавал исключение.
Я хочу разрешить дополнительные службы, поэтому, если служба найдено, используйте это в конструкторе, если не найдено, передайте в конструктор значение null.

В моей реализации:

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

public IServiceManager(IService service, ...)
{
_service = service ?? new DefaultService();
...
}
Итак, как вы можете видеть, если сервис не может быть найден (нулевой), используйте значение по умолчанию.
Возможно, я неправильно понимаю, как работает DI. Возможно, вместо этого я мог бы использовать фабрику?
Однако в моей системе использование служб по умолчанию, когда они не указаны, будет обычным явлением, поэтому мне нужно решение, которое не требует от потребителя API регистрации службы.

Есть ли способ настроить ASP.NET Core DI так, чтобы он возвращал значение null, а не выдавал исключение?

Подробнее здесь: https://stackoverflow.com/questions/428 ... yinjection
Ответить

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

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

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

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

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