我想增强/模仿对象构建器完成的依赖注入,以包含一些自定义属性
标准方式是
在mySmartPart.cs中
[CreateNew] MyPresenter ABC { .... }
[ServiceDependency] myService XYZ { ... }
in include [MyCustomReferenceAttribute] CustomerObject MyCustomer { .... }
等
这显然可以在创建smartPart之后完成,但我猜测(希望?)有一些地方我可以连接一些代码扩展来做必要而不是每个地方重复代码!!!
答案 0 :(得分:1)
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
我知道这是很多信息,但希望这会给你一些指示。