如何仅通过key / id从WindsorContainer中提取组件

时间:2011-02-28 18:36:41

标签: castle-windsor castle

在版本1.3中,您可以使用contaier [cmpKey]来提取具有所有依赖关系的组件(如果有)。进入新版本(2.5),访问者已经过时,Resolve Method提供的选项都没有与旧版本匹配。我可能会通过键/ id找出Type,但我想知道是否仍然支持为什么只通过key / id提取cmp

2 个答案:

答案 0 :(得分:0)

object component = container.Resolve("component-name", new object());

我仍然建议使用强类型Resolve<T>,除非确实没有选择。

答案 1 :(得分:0)

实际上比毛里西奥建议的更好的选择(虽然除了object参数有点令人困惑之外他的解决方案没有任何问题)是

var instance = container.Resolve<object>("component-name");

在Windsor提供密钥时,它具有优先级,并且仅通过密钥查找组件。该类型仅用作语法糖以避免施放。