【发布时间】:2011-08-10 17:10:06
【问题描述】:
我想知道如何在 WebForms 中连接 Castle Windsor。
我假设第二行连接了 MVC 中的控制器:
// Initialize Windsor
IWindsorContainer container = new WindsorContainer().Install(FromAssembly.This());
ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(container.Kernel));
然后如何在 ASP.NET 中连接 WebForms?
我有一个项目已修改为相同的 WebForms 设置。一切正常,直到我希望 Castle Windsor 将 ISession 注入 ASPX 页面。它根本没有,我假设上面的第二行代码是用于 MVC 控制器的。
我的 nHibernate 安装程序中有这个,在两个项目的同一个地方:
container.Register(Component.For<ISession>()
.LifeStyle.PerWebRequest
.UsingFactoryMethod(kernel => kernel.Resolve<ISessionFactory>().OpenSession()));
我原本以为这样可以,但事实并非如此。
我已经坚持了好几天了,而且官方文档很少,我差点把头发扯掉,剩下什么。
我确实知道 ASP.NET WebForms 不是专门为使用依赖注入而设计的,但 Ninject 已经做到了,尽管有一点黑客攻击,如果我可以确认 Castle Windsor 不兼容和/或不会不再支持 WebForms 我将转向别的东西。
【问题讨论】:
标签: nhibernate dependency-injection castle-windsor webforms