温莎城堡;注册ApplicationContext
本文关键字:注册 ApplicationContext 城堡 | 更新日期: 2023-09-27 18:17:12
我正在尝试注册ApplicationContext,但不断得到一个错误。
我的温莎安装程序是这样的:
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
Component.For<ApplicationContext>().ImplementedBy<MyInitializer>(),
Classes.FromThisAssembly().Pick()
.WithService.DefaultInterfaces()
.LifestyleTransient()
);
}
但是,当尝试像这样解决它时:
public class BootStrapperWindsor
{
public IWindsorContainer BootstrapContainer { get; set; }
public ApplicationContext ApplicationContext
{
get { return BootstrapContainer.Resolve<MyInitializer>(); }
}
public BootStrapperWindsor()
{
BootstrapContainer = new WindsorContainer().Install(FromAssembly.This());
}
}
当调用ApplicationContext:
时,我得到这个错误"找不到支持MyInitializer服务的组件"
当我使用structuremap并在structuremap注册表中创建类似的关联时,它工作得很好:
For<ApplicationContext>().Use<MyInitializer>();
但是,我似乎不能正确地把这个转换成Windsor。
我做错了什么,我不能实现ApplicationContext与MyInitializer?
MyInitializer也继承自ApplicationContext
container.Resolve< ApplicationContext>()
就是你想要的。