检查Windsor容器组件实例

时间:2010-06-09 19:21:16

标签: castle-windsor registration

如何使用Windsor容器检查实例(不仅仅是组件)是否已注册?

即。 container.ContainsInstance(typeof(MyType))

[编辑]

另一种写作方式可能是

Kernel.GetAssignableHandlers(typeof(object))
    .Where(handler => handler.Service == typeof(MyType) || handler.ComponentModel.Implementation == typeof(MyType))
    .Any(handler => handler.***Instance*** != null)

请注意,API中不存在属性Instance。

1 个答案:

答案 0 :(得分:2)

官方说明没有办法检查。容器完全没有意识到用于构造实例的激活机制,这是一件好事。

非正式地,如果您不关心......非官方解决方案,您可以检查组件激活器是否属于类型(从我的头脑中)ExternalInstanceActivator。如果是,则该组件具有从外部提供的实例。

更重要的是 - 为什么你想要那些信息吗?