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