Использование значений параметров по умолчанию с Ninject 3.0

У меня есть класс с конструктором, имеющим параметр со значением по умолчанию. В 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) Убедитесь, что провайдер корректно обрабатывает запросы на создание.

Учитывается ли атрибут [Необязательный], когда для параметра присутствует значение по умолчанию, и как лучше всего обрабатывать внедрение с такими необязательными параметрами?

11
задан The Davester 9 May 2012 в 14:16
поделиться