[英]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容器提供了一种扩展方法,该方法实现了属性注入。
查看Neal Shawn的ASpNetWindsorModule 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.