我正在构建一个应用程序,它将使用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>
但是这个选项不可扩展,配置文件会随着组件数量的增加而变得笨重。任何人都可以建议更好的练习? 问候, 汤姆
答案 0 :(得分:1)
它是XML或代码(但它们不是互斥的)。这就是大多数(所有?)IoC容器所做的事情。作为示例,请参阅Windsor的XML config docs和code config (fluent registration) docs。另一个代码配置选项是创建DSL,如Binsor。
通常我混合使用两种方法,尽可能在代码中注册,除了需要配置的部分,这些部分作为XML配置。或者您甚至可以在代码中进行注册并从appSettings中读取简单参数。
当然你也可以将你的配置放在INI-style config甚至是数据库中,但这通常没有多大意义。