Я получаю сообщение об ошибке «Невозможно разрешить службу для типа 'XXX», но я бы предпочел, чтобы DI возвращал ноль, а не выдавал исключение.
Я хочу разрешить дополнительные службы, поэтому, если служба найдено, используйте это в конструкторе, если не найдено, передайте в конструктор значение null.
В моей реализации:
Код: Выделить всё
public IServiceManager(IService service, ...)
{
_service = service ?? new DefaultService();
...
}
Возможно, я неправильно понимаю, как работает DI. Возможно, вместо этого я мог бы использовать фабрику?
Однако в моей системе использование служб по умолчанию, когда они не указаны, будет обычным явлением, поэтому мне нужно решение, которое не требует от потребителя API регистрации службы.
Есть ли способ настроить ASP.NET Core DI так, чтобы он возвращал значение null, а не выдавал исключение?
Подробнее здесь: https://stackoverflow.com/questions/428 ... yinjection
Мобильная версия