跨多个项目共享应用程序首选项

时间:2008-09-30 17:27:46

标签: .net app-config

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

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

3 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我个人建议不要在另一个程序集中引入对.config文件的不必要依赖。在这种情况下使用带有序列化声音清晰度的自定义类,但是您会面临潜在的版本问题,并且您将失去app.config(节处理程序等)提供的潜在优势。