У меня есть интерфейс для разрешения, и у одной из зависимостей сопоставленного объекта есть свойство, которое я хотел бы установить со значением, которое доступно только при разрешении объекта верхнего уровня.
Естьнет действительного значения по умолчанию для свойства.Если он не установлен, он должен быть нулевым, и его следует устанавливать только в том случае, если значение, имеющееся у меня во время разрешения, не равно нулю.
Возможно ли внедрение этого условного свойства?
Я пробовал это...
container.RegisterType<ProductInstanceValidatorBase, CartItemPurchaseTypeValidator>("CartItemPurchaseTypeValidator", new InjectionProperty("AccountEntity", null);
... но там сказано, что я не могу использовать нулевое значение!
Я также пробовал это в разрешении ...
container.Resolve<ProductInstanceValidatorBase>(new PropertyOverride("AccountEntity", value));
... но это вызывает исключение, когда значение равно нулю.Он говорит:
Вывод типа параметра не работает для нулевых значений.Укажите тип параметра в явном виде, используя правильно настроенный экземпляр классов InjectionParameter или InjectionParameter.Имя параметра: parameterValue
По сути, я собираюсь зарегистрировать свойство, которое устанавливается только с переопределением и только тогда, когда значение переопределения не равно нулю.Есть идеи?Конечно, с семантической точки зрения, внедрение свойства должно быть необязательным.
Cheers, Ian.