Внедрение пользовательской зависимости SCSF
-
12-09-2019 - |
Вопрос
Я хотел бы улучшить / имитировать внедрение зависимостей, выполняемое конструктором объектов, чтобы включить некоторые пользовательские свойства
стандартным способом является
в 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
Я знаю, что это много информации, но, надеюсь, это даст вам несколько указаний.