【发布时间】:2010-09-20 19:47:27
【问题描述】:
我正在做一个快速的项目来监控/处理数据。本质上,这只是监视器、时间表和处理器。监视器使用计划检查数据(ftp、本地、imap、pop 等)并将新数据发送到处理器。它们都有接口。
我正在尝试找到一种合理的方法来使用 config 来配置每个监视器使用的调度/处理器。这很简单:
<monitor type="any.class.implementing.monitor">
<schedule type="any.class.implementing.schedule">
...
</schedule>
<processor type="any.class.implementing.processor" />
</monitor>
我正在努力解决的问题是配置任何旧的监视器/时间表/处理器的最佳方式是什么。一方面,可以实现构造函数参数或属性(不采用任何语法):
<monitor type="any.class.implementing.monitor">
<args>
<arg value="..." />
</args>
<properties>
<property name="..." value=..." />
</properties>
<schedule type="any.class.implementing.schedule">
...
</schedule>
<processor type="any.class.implementing.processor" />
</monitor>
另一种解决方案是每个接口中的工厂方法,将自定义配置作为参数:
public IMonitor Create(CustomConfigSection config);
我见过人们同时使用这两种方法。你喜欢哪个?将配置映射到构造函数时有什么技巧吗?
对于 DI 是否能融入这个烂摊子,我有点担心。最后,这将是每个监视器实例的一组绑定,除了默认值之外,这似乎毫无意义,配置可以覆盖。
【问题讨论】:
标签: .net configuration interface inversion-of-control factory