Пользовательский ввод зависимостей SCSF - PullRequest
0 голосов
/ 04 декабря 2009

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

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

в mySmartPart.cs

[CreateNew] MyPresenter ABC { .... }

[ServiceDependency] myService XYZ { ... }

в том числе [MyCustomReferenceAttribute] CustomerObject MyCustomer { .... }

и т.д.

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

1 Ответ

1 голос
/ 04 декабря 2009

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

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

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

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

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

...