大型c#解决方案中的配置文件

大型c#解决方案中的配置文件,c#,configuration,app-config,C#,Configuration,App Config,我有一个大的解决方案(~50个项目),由许多web项目和web服务项目组成,这些项目分组到模块(解决方案文件夹)。我之所以有很多WebApi项目,是因为我假设将来它们将部署在不同的域上 正如我提到的,一个模块可以有许多web api项目、类库项目和一个测试项目。目前我有5个模块,所以我有5个测试项目——我称它们为ModuleTestProject——每个项目都需要相同的共享配置数据 一般来说,如何做好这件事? 我尝试将配置放在一个单独的TestSetup类库项目中,该项目包含app.config

我有一个大的解决方案(~50个项目),由许多web项目和web服务项目组成,这些项目分组到模块(解决方案文件夹)。我之所以有很多WebApi项目,是因为我假设将来它们将部署在不同的域上

正如我提到的,一个模块可以有许多web api项目、类库项目和一个测试项目。目前我有5个模块,所以我有5个测试项目——我称它们为ModuleTestProject——每个项目都需要相同的共享配置数据

一般来说,如何做好这件事?

我尝试将配置放在一个单独的TestSetup类库项目中,该项目包含app.config和引用它的每个ModuleTestProject。我在这里读过一篇文章如何做到这一点,但我觉得这不是一个好办法

我的另一个想法也是一个单独的项目,其中类包含配置数据。这样,我就不必处理发布app.config文件等问题

但是,在我做任何事情之前,我认为最好问问比我更有经验的人


我提前感谢你的帮助

windows注册表是读取配置的另一个选项。您可以将配置值添加到注册表,然后可以从同一台计算机上运行的每个程序/模块中获取这些值。
有关更多信息:

如果所有项目都需要共享配置数据,我将使用自定义ConfigurationProvider类创建一个新项目。然后我会参考所有其他项目中的这个项目


将来,当您将项目部署到不同的域时,您可以修改ConfigurationProvider类,并添加一个选项,以从某个公共位置(例如,可通过HTTP访问的XML文件)检索和缓存设置。

经过几个小时的搜索,经过思考和阅读,我决定遵循appSetting的file属性可以包含外部配置文件的方式。链接:


目前我只有一个外部配置文件,但我正计划重新组织我的文件,以便它们更易于管理。

谢谢您的回答!老实说,我希望注册表不动。谢谢你的回答!第一部分听起来像是我的想法,我想得越多,这样做的机会就越大。很高兴能帮上忙。另一种方法是在项目之间链接相同的配置(使用“解决方案资源管理器”中的“添加>添加现有项>添加为链接”)。不过,我不确定这是否对你有用。