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

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

Сообщение Anonymous »

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

Я получаю сообщение об ошибке «Невозможно разрешить службу для типа «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#»