检查Windsor是否已注册匹配的组件

时间:2015-02-06 12:11:46

标签: castle-windsor

在Castle Windsor场景中,我想检查我的容器是否注册了某个服务,并且基本上做了

if (container.HasComponentFor<IMyService>()) {
    // resolve service with container.Resolve<IMyService>()
    // then do cool stuff
}

但当然,container.HasComponentFor<IMyService>()并不存在。有没有等价的?

2 个答案:

答案 0 :(得分:22)

您可以检查MicroKernel是否已注册该组件:

if (container.Kernel.HasComponent(typeof(IMyService)))
    // resolve service with container.Resolve<IMyService>()
    // then do cool stuff
}

答案 1 :(得分:3)

您可以尝试container.Kernel.HasComponent()