2010-10-08 69 views
0

有没有办法将当前作为依赖项执行的IObjectFactory或ApplicationContext传递给对象?例如Spring.Net:注入ApplicationContext/ObjectFactory本身

<object id="SpringActionInvoker" type="xxx.SpringActionInvoker, xxx"> 
    <constructor-arg ref="reference_to_the_ApplicationContext_or_ObjectFactor_that_is_executing" /> 
    </object> 

我想用我Spring.Net实施Asp.Net MVC ControllerActionInvoker的将被注入到控制器

public class SpringActionInvoker : ControllerActionInvoker 
{ 
    private IObjectFactory objectFactory; 

    public SpringActionInvoker(IObjectFactory objectFactory) 
    { 
     this.objectFactory = objectFactory; 
    } 

    protected override FilterInfo GetFilters(ControllerContext controllerContext, ActionDescriptor actionDescriptor) 
    { 
     //use objectFactory to inject dependencies into filters 
    } 
} 

回答

4

只是让你的类实现IApplicationContextAware这应该让你自动注入当前的IApplicationContext。

0

如何:

<object id="SpringActionInvoker" type="xxx.SpringActionInvoker, xxx" /> 

然后:

public class SpringActionInvoker : ControllerActionInvoker 
{ 
    protected override FilterInfo GetFilters(ControllerContext controllerContext, ActionDescriptor actionDescriptor) 
    { 
     IObjectFactory objectFactory = ContextRegistry.GetContext(); 
     //use objectFactory to inject dependencies into filters 
    } 
} 
+0

我想将SpringActionInvoker放入实用工具类中,并且我并不总是使用app.config和ContextRegistry创建ObjectContext – Fabiano 2010-10-08 13:48:43