У меня есть класс с конструктором, имеющим параметр со значением по умолчанию. В Ninject 2.2 он будет учитывать атрибут [Необязательный]
и нормально работать без определения привязкик конструктору, объявленному следующим образом:
public EmployeeValidator([Optional] IValidator<PersonName> personNameValidator = null)
После обновления до Ninject 3.0 построение этого объект завершается сбоем с сообщением о том, что поставщик вернул значение null:
Тестовый метод ValidatorIsolated.Tests.EmployeeValidatorTest.CreateEmployeeValidatorTest вызвал исключение:
Ninject.ActivationException: Ошибка активации IValidator{PersonName} с использованием условной неявной самопривязки IValidator{PersonName }
Провайдер вернул null.
Путь активации:
2) Внедрение зависимости IValidator{PersonName} в параметр personNameValidator конструктора типа EmployeeValidator
1) Запрос IValidator{Employee}
Предложения:
1) Убедитесь, что провайдер корректно обрабатывает запросы на создание.
Учитывается ли атрибут [Необязательный]
, когда для параметра присутствует значение по умолчанию, и как лучше всего обрабатывать внедрение с такими необязательными параметрами?