Вопрос

Я хотел бы улучшить / имитировать внедрение зависимостей, выполняемое конструктором объектов, чтобы включить некоторые пользовательские свойства

стандартным способом является

в mySmartPart.cs

[Создать новое] MyPresenter ABC { ....}

[Зависимость от сервиса] MyService XYZ { ...}

включить [Атрибут MyCustomReferenceAttribute] Пользовательский объект MyCustomer { ....}

и т.д.

Очевидно, это можно сделать после создания SmartPart, но я предполагаю ( надеюсь?) есть какое - нибудь место, где я могу подключить какое - нибудь расширение кода, чтобы делать необходимое, вместо того чтобы повторять код везде !!!

Это было полезно?

Решение

Unity / ObjectBuilder использует шаблон цепочки ответственности, называемый цепочкой стратегий.Вы можете добавить свои собственные шаги в эту цепочку, чтобы получить некоторую настройку того, как Unity / ObjectBuilder выполняет построение объекта.

Вот более подробная информация о дизайне Unity: http://msdn.microsoft.com/en-us/library/cc440939.aspx

Мое чутье подсказывает, что вы действительно хотите заменить большие части Unity.Я думаю, что это потребовало бы от вас распотрошить большие части этой цепочки стратегий и заменить ее индивидуальными версиями.

В зависимости от того, чего вы пытаетесь достичь, это возможно это просто наследование ваших атрибутов от Атрибут DependencyResolutionAttribute ( Зависимость ) и просто Добавить стратегия для стратегической цепочки.Вот как настраиваются стратегии по умолчанию (а также полный список стратегий, используемых в Unity: http://unity.codeplex.com/SourceControl/changeset/view/39621#427281

Я знаю, что это много информации, но, надеюсь, это даст вам несколько указаний.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top