繁体   English   中英

在Castle Windsor中现有服务实例上的Setter注入

[英]Setter injection on an existing service instance in Castle Windsor

温莎城堡是否支持将setter注入应用于现有服务实例? 在某些情况下,我确实无法控制某些类实例的创建,而我确实需要解决它们的依赖关系。 这排除了构造函数的注入,但是为进行setter注入打开了大门,因为我可以在创建新实例后立即拦截它们。

我知道Castle Windsor支持开箱即用的setter注入,我只是不知道是否有可能(如果可以:如何)在不使用Resolve方法的情况下显式地利用它。

我也知道,使用ObjectFactory.BuildUp方法在StructureMap中可以做到这一点,这使我希望在温莎城堡中找到一个类似的东西。

如果您想知道,我PageHandlerFactory ASP.NET WebForms中的页面应用依赖项注入,并提供自定义的PageHandlerFactory 我不想走自己尝试创建页面处理程序的道路,我应该将其留给PageHandlerFactory类中的基本实现。

public class CustomPageHandlerFactory : PageHandlerFactory
{
    public override IHttpHandler GetHandler(HttpContext context, string requestType, string virtualPath, string path)
    {
        IHttpHandler handler = base.GetHandler(context, requestType, virtualPath, path);
        Page page = handler as Page;

        if (page == null)
        {
            return handler;
        }

        // Resolve dependencies using setter injection...

        return page;
    }
}

请参阅本文底部:

http://www.jeremyskinner.co.uk/2008/11/08/dependency-injection-with-aspnet-mvc-action-filters/

Jeremy为Windsor容器提供了一种扩展方法,该方法实现了属性注入。

温莎城堡是否支持将setter注入应用于现有服务实例?

否。请查看常见问题解答以了解基本原理。

我正在将依赖项注入应用于ASP.NET WebForms中的页面,

看到这个问题

查看Neal Shawn的ASpNetWindsorModule

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM