温莎:你如何确定用户控制服务的范围?

时间:2011-01-05 19:54:35

标签: castle-windsor

我正在开发一个winforms应用程序,我有一个场景,我希望将某些服务的生命周期范围限定为usercontrol的生命周期(应用程序中可能有很多)。在温莎城堡做这件事的最佳方式是什么?

我想到的一种方法是在usercontrol中创建一个子容器,将我想要作用的所有服务注册为子容器中的单例,然后使用子容器来解析将要使用的对象图在usercontrol内部。我真的想在我的prism模块中保留我的ioc配置,而不是让它们“散乱”(不是很分散,但你得到了重点)在代码库上。

还有其他方法可以实现这一目标吗?我已经读过你可以使用Handle-selectors和SubResolvers来完成服务的上下文范围,但我还没有找到描述如何的博客。

编辑:

当我说“usercontrol”我指的是pr root usercontrol时,usercontrol的子控件应该由其父控件作用域。我通过创建子容器pr root usercontrol并将作用域服务注册到子容器中来解决它。

1 个答案:

答案 0 :(得分:0)

你的问题不精确。这意味着每次控制是什么意思?如果控制有子控制怎么办?你会如何检测你所在的范围?

实施方面,您需要实施自定义lifestyle