我有一个使用 Windsor 构建的应用程序,该应用程序具有功能,并且所有组件都是在 xml 中手动注册的,其中还包含它们的配置。这是一个例子:
<component type="type">
<parameters>
[...]
</parameters>
</component>
我决定重构我的组件并将它们分成 Windsor 安装程序,每个功能一个安装程序。我现在的问题是决定将每个安装程序中注册的组件的配置放在哪里。
在此决定之前,用户可以在 xml 的参数元素中找到组件的适当配置,而我不必为此工作编写连线逻辑。
现在我有点困惑,因为我似乎不再有这种自动化。由于我决定通过 xml 声明我的应用程序的安装程序,我认为如果我可以将此配置放入 installr 元素中,如下所示:
<installers>
<install assembly="myassembly">
<parameters>
[...]
<parameters>
</install>
</installers>
我不知道 Windsor 是否支持这种语法。如果是这样,那么我想知道如何从安装程序内部访问它以及如何将它连接到我的组件和服务。
另一个可接受的替代方法是在 xml 上创建和注册一个包含我的功能的所有配置的组件:
<components>
<component type="featureConfiguration">
<parameters>
</parameters>
</component>
</components>
在这种情况下,我想我必须重构我的组件以让它们在构造函数中接收这种类型作为参数,而在我拥有直接属性之前,换句话说,在我可以通过查看代码准确地知道我的组件的依赖关系之前,通过这种新形式,我将整个配置传递给他们,但我不再知道在这个或那个组件中使用了配置的哪些特定属性。
要使用第二种解决方案并避免这种混淆,我应该避免将整个配置传递给我的子组件,并让单个属性完成工作,但我必须在此配置组件的属性和安装程序的组件和服务。
我认为除了组件之外,我还可以将所有配置放在 xml 的 properties 元素中:
<properties>
<featureConfiguration>
[property list]
</featureConfiguration>
</properties>
但同样,我必须找到列表中每个属性与我的组件属性之间的粘合剂。
任何帮助表示赞赏。
谢谢你。