繁体   English   中英

Castle Windsor和注册ApplicationContext

[英]Castle Windsor & Registering ApplicationContext

我正在尝试注册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>();

但是,我似乎无法正确地将其转换为温莎。

我错误的是我无法使用MyInitializer实现ApplicationContext?

此外,MyInitializer继承自ApplicationContext。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM