【发布时间】:2011-06-12 17:08:47
【问题描述】:
我在我的 Asp.Net MVC 应用程序中使用 Spring.Net,其中控制器必须定义为原型(非单例)。我有必须具有请求范围的对象(每个请求的新对象)。有没有办法将它们注入我的控制器?
<object type="xx.CompanyController, xx" singleton="false">
<property name="Service" ref="ServiceA" />
</object>
<object id="ServiceA" type="xx.ServiceA, xx" scope="request"/>
<property name="ObjectB" ref="ObjectB" />
</object>
<object id="ObjectB" type="xx.ObjectB, xx" scope="request"/>
像这样,除了控制器之外的所有对象都被视为单例。 ObjectB 不能是原型,因为它被一些需要共享相同实例的其他对象引用。从控制器中删除 singleton="false" 并添加 scope="request" 也不起作用(控制器被视为单例)。
我使用 Spring.Net 1.3.1 和 MvcApplicationContext
【问题讨论】:
-
我注意到了同样的行为。也就是说,如果对象是 singleton 对象的依赖项,则使用 request 范围定义的对象将被“提升”为单例范围。
标签: c# .net asp.net-mvc asp.net-mvc-2 spring.net