如何管理通过依赖注入加载的组件的配置?

时间:2010-02-22 03:13:26

标签: dependency-injection web-config configuration-files

我正在构建一个应用程序,它将使用DI Framework加载组件以从外部Web服务或数据库等各种来源获取数据。现在组件需要一些应用程序配置,如Web服务URL或数据库连接字符串。将所有内容保存在Web.Config中并通过构造函数参数传递它是我的基本选项。

<constructor>
  <param name="connectionString" parameterType="string">
    <value value="AdventureWorks"/>
  </param>
  <param name="dataService" parameterType="IMyService">
    <dependency />
  </param>
</constructor>

但是这个选项不可扩展,配置文件会随着组件数量的增加而变得笨重。任何人都可以建议更好的练习? 问候, 汤姆

1 个答案:

答案 0 :(得分:1)

它是XML或代码(但它们不是互斥的)。这就是大多数(所有?)IoC容器所做的事情。作为示例,请参阅Windsor的XML config docscode config (fluent registration) docs。另一个代码配置选项是创建DSL,如Binsor

通常我混合使用两种方法,尽可能在代码中注册,除了需要配置的部分,这些部分作为XML配置。或者您甚至可以在代码中进行注册并从appSettings中读取简单参数。

当然你也可以将你的配置放在INI-style config甚至是数据库中,但这通常没有多大意义。