0

我想增强/模仿对象构建器完成的依赖注入以包含一些自定义属性

标准方法是

在 mySmartPart.cs

[CreateNew] MyPresenter ABC { .... }

[服务依赖] myService XYZ { ... }

在包括 [MyCustomReferenceAttribute] CustomerObject MyCustomer { .... }

等等

这显然可以在创建 smartPart 之后完成,但我猜(希望?)有一些地方我可以连接一些代码扩展来做必要的事情,而不是到处重复代码!

4

1 回答 1

1

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

我知道这是很多信息,但希望这能给你一些指导。

于 2009-12-04T06:32:44.617 回答