使用SPRING.Net创建新对象

时间:2009-05-11 09:43:06

标签: spring.net

我是spring.net的新手,我想创建一个List<>对象 该列表由一个调用:

的循环初始化
  • IObj obj =(IObj)ContextRegistry.GetContext()。GetObject(“obj”)

  • 更改对象属性....

  • 将其添加到列表中......

问题是:我在循环的每一步都持续获得相同的对象 所以我得到了同一个对象的列表

2 个答案:

答案 0 :(得分:3)

如果您的对象定义不是单例,那么每次都会得到一个新对象。请注意,默认情况下,singleton设置为true,因此您必须将其显式设置为false。

例如,如果您使用xml文件配置对象,请将singleton属性设置为false:

<object name="name" type="..." singleton="false"/>

答案 1 :(得分:2)

通过循环“GetObject(”obj“)”方法,目前尚不清楚您要实现的目标。也许你可以发布循环代码?

“GetObject(”obj“)”的作用是向Container请求名称为“obj”的对象。您声明要更改对象的属性并将其添加到列表中。这是容器可以为您做的事情: 设置对象的属性: http://www.springframework.net/doc-latest/reference/html/objects.html#objects-simple-values 创建一个列表: http://www.springframework.net/doc-latest/reference/html/objects.html#objects-collections-values

此列表可以注入您选择的对象。

如果您只想要IObj的非单件对象,那么naders的答案是正确的。 Spring将这些非单例对象称为“原型”。可在此处找到可用范围的概述:http://www.springframework.net/doc-latest/reference/html/objects.html#objects-factory-scopes