2

我们有一个相当大的 .NET 解决方案,其中包含多个可执行项目(winforms 和命令行程序)。目前,这些项目中的每一个都有自己的 app.config,其中包含连接字符串、邮件服务器设置等。正如您可以想象的那样,每当需要更新特定设置时,在每个 app.config 文件中进行更改并不是那么方便。

您认为集中管理这些设置的最佳做法是什么?到目前为止,我已经考虑了两种不同的方法。第一种是使用自定义类(或多个类),该类包含设置并从 XML 序列化和反序列化。第二种方法是仅为单个项目定义 app.config 文件并使用 ConfigurationManager.OpenExeConfiguration() 来访问它。

4

3 回答 3

1

在您的启动项目上创建 App.config 并在其他项目上静态链接到它。

您可以通过转到添加->现有项目来静态链接,当单击文件浏览器窗口上的添加按钮时,添加按钮上有一个小的向下箭头。单击此处,将显示“添加为链接”选项。这将在两个项目上放置相同的 App.Config,只有一个实际文件。

如果您的项目有不同的 App.Config,只有“一些”设置相同,请考虑检查文件参数;我的意思是,您可以在一个项目中拥有多个 App.Config:http ://weblogs.asp.net/pwilson/archive/2003/04/09/5261.aspx

只需创建一个中央 common.config 文件并指向它。

于 2008-09-30T17:32:37.250 回答
1

使用ConfigSource指令从具有共享值的中央文件加载所有设置。

于 2008-09-30T18:09:09.860 回答
0

我个人建议不要对另一个程序集的 .config 文件引入不必要的依赖。在这种情况下,使用带有序列化的自定义类听起来更干净,但是您将自己暴露在潜在的版本控制问题中,并且您失去了 app.config 提供的潜在优势(节处理程序等)。

于 2008-09-30T17:37:16.473 回答