Evg*_*vin 11 c# asp.net-mvc castle-windsor asp.net-mvc-3 windsor-3.0
我的global.axax中有代码:
protected void Application_Start()
{
WindsorContainer = new WindsorContainer();
WindsorContainer.Install(FromAssembly.InDirectory(new AssemblyFilter(AppDomain.CurrentDomain.RelativeSearchPath)));
ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(WindsorContainer.Kernel));
//...
}
Run Code Online (Sandbox Code Playgroud)
当我调试global.asax时,代码FromAssembly.InDirectory(newAssemblyFilter(AppDomain.CurrentDomain.RelativeSearchPath))找到我的所有项目dll(有7个dll).其中3个包含IWindsorInstaller接口的实现,例如:
class WindsorInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
var services = AllTypes.FromThisAssembly().Where(type => type.Name.EndsWith("Service"));
container.Register(services
.WithService.DefaultInterfaces()
.Configure(c => c.LifestyleTransient()));
container.Register(Component.For<ISession>().ImplementedBy<AspnetSession>().
LifeStyle.Transient);
container.Register(Component.For<ICache>().ImplementedBy<AspnetCache>().
LifeStyle.Transient);
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我设置断点时,只有一个安装程序被调用,另外两个被跳过.这很有趣,但我有另一个工作项目,我复制代码.
Mar*_*ijn 14
您的安装程序类应该是公开的.您当前的安装程序类没有访问修饰符,因此默认为internal- 并且对Windsor不可见.Castle文档在此处指定:https://github.com/castleproject/Windsor/blob/master/docs/installers.md.
| 归档时间: |
|
| 查看次数: |
5850 次 |
| 最近记录: |