温莎城堡;注册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

温莎城堡;注册ApplicationContext

container.Resolve< ApplicationContext>()就是你想要的。