如何在Spring.Net中为层级注入依赖



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

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

RootObjectImportantObject有依赖性,ContentObjectAnotherObject有依赖性。为了定义这些依赖关系,我定义了以下内容:

<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

听起来你想要自动布线…像这样的代码应该可以工作:

<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 属性注入

即使default-autowire定义了Auto-wiring的默认行为,您仍然可以在可能需要的object元素中覆盖它。

最新更新