如何在Visual Studio中跨多个项目共享配置设置?

时间:2010-05-13 12:46:47

标签: visual-studio

我有一个Visual Studio Web应用程序解决方案。我有三个项目,如UserInterface,BusinessLogic和DataAccess。

我必须存储一些用户定义的设置,并在配置文件中创建了configSections。

我通过继承自.NET的ConfigurationSection基类的类来访问这些configSections。

因此,对于每个项目,我都有一个单独的configSection,对于相应的configSection,我在该项目中有一个继承自ConfigurationSection的类来访问配置部分设置。

这很好用。但是,如果我需要在多个项目中使用任何设置,则会出现问题。因此,如果我需要使用UserInterface项目中的设置configSection,比如说,BusinessLogic项目我必须在BusinessLogic的configSection中实际复制该设置。这最终会在多个configSections中复制相同的设置。

这有点过于冗余吗?

3 个答案:

答案 0 :(得分:1)

从未真正做到这一点,但从理论上讲它可能有用......

定义自定义配置部分时,将其configSource设置为外部文件(whatever.config)。此外部文件应添加到SOLUTION而不是项目中。它将显示在“解决方案项目”下。在每个项目中,添加现有文件,浏览到whatever.config,单击“添加”按钮上的下拉列表,然后选择“添加为链接”。

Whatever.config将是一个单独的文件,您可以在解决方案项下编辑,并在编译时将其复制到每个应用程序中。

答案 1 :(得分:0)

使用您的示例:

只需在Business Logic项目中创建设置,然后将Getter公开给用户界面项目。

然后UI可以在BL中查询值。您的配置设置仅在一个位置 - 可以是最低级别。

但是,如果使用新项目替换较低级别的项目,则必须确保也复制该设置。如果设置在数据访问级别中,那么这可能是一个问题,因为它是最有可能被更改的设置(例如,不同的数据库提供程序)。

答案 2 :(得分:0)

使用“共享项目”有一种更好的方法可以在very similar question here上查看我的答案。