如何在Spring.Net中为层次结构注入依赖项

时间:2011-09-06 05:29:27

标签: .net configuration dependency-injection ioc-container spring.net

如何定义配置以将依赖项注入以下对象层次结构:

RootObject
 - ContentObject
   - L11Object
   - L12Object
     - L21Object
     .etc.

RootObject依赖ImportantObjectContentObject依赖AnotherObject。 为了定义这些依赖关系,我定义了以下内容:

<object name="RootObject" type="...." abstract="true">
  <constructor-args ../>
</object>
<object name="ContentObject" type="...." abstract="true" parent="RootObject">
  <constructor-args ../>
</object>

一切正常,但Spring.Net需要在配置中定义我的对象的层次结构。 是否可以使用像“自动发现”这样的思考来通过定义parent="..."来重复配置中的继承层次结构?

是的,我知道Unity 1.0+比Spring.Net更好地解决了它,但我别无选择,我应该使用Spring.Net。

1 个答案:

答案 0 :(得分:1)

听起来你想要自动接线 ......这样的事情应该有效:

<objects xmlns="http://www.springframework.net"
         default-autowire="constructor">
  <object type="RootObject" />
  <object type="ContentObject" />
  <object type="L11Object" />
  <object type="L12Object" />
  <object type="L21Object" />
  <!--etc.-->
</objects>

这假设所讨论的类型使用构造函数注入模式,但也支持IIRC Property Injection

即使default-autowire定义了自动布线的默认行为,您仍然可以在那些可能需要它的object元素中覆盖它。