【发布时间】:2016-02-25 21:49:49
【问题描述】:
在一个工作项目中,我确定子容器是一种比类型工厂更好的方法(从逻辑角度来看),可以完成我们需要做的事情。
我已经为要添加到根容器的多个子容器创建了配置。但是,我需要能够在运行时选择一个子容器,并根据我们的业务上下文使用它进行注入。因此,每个容器都应该由业务上下文名称(在我们的 WebAPI WindsorCompositionRoot 中)来标识。
看起来好像 Castle 不允许我在构建容器时设置名称。允许名称的一个重载似乎试图从 XML 配置中提取,这不是我想要的。 (我不知道那里是否缺少某些东西。)name 属性是一个 getter,没有 setter,所以我无法在实例化后设置名称。
如何命名容器,以便使用GetChildContainer 轻松拉取它?由于我们项目的结构方式,尝试保留对子容器的引用(甚至返回它)会有些痛苦——而且很可能是糟糕的设计。
【问题讨论】:
-
您找到解决方案了吗?我也有同样的问题。
标签: c# .net castle-windsor