我正在处理的解决方案由多个项目组成,其中一个是启动项目(Windows窗体,.exe项目)并且绑定了app.config
文件。至少有一个项目(所有其他项目是.DLL),处理数据库,还需要读取app.config
设置(读取数据库连接字符串)。我想将所有应用程序设置集中在一个app.config
文件中。
我的问题是:
app.config
,我应该使用ConfigurationManager.OpenExeConfiguration(string exePath)
,其中string exePath
是启动项目.exe
的位置吗? 答案 0 :(得分:1)
Visual Studio为每个项目创建一个app.config,但仅提供存储该程序集的配置项的位置(因为它可以由多个正在执行的程序集使用)。这些配置项应该合并到执行程序集的app.config中。
你可以添加代码以从多个配置文件中提取,但它只是将它们全部放在一个app.config中以供可执行文件使用。
答案 1 :(得分:1)
配置文件连接到应用程序域,而不是DLL。您可以使用ConfigurationManager类直接访问您的应用程序(比如说Web应用程序或控制台应用程序)配置(不需要OpenExeConfiguration)。
如果您需要在应用程序的不同部分使用不同的连接字符串,则可以在配置中添加多个连接字符串
<connectionStrings>
<add name="Connection1" connectionString="Data Source=..." />
<add name="Connection2" connectionString="Data Source=..." />
</connectionStrings>
并按名称访问它们:
var connectionstring1 = ConfigurationManager.ConnectionStrings["Connection1"].ConnectionString;
var connectionstring2 = ConfigurationManager.ConnectionStrings["Connection2"].ConnectionString;
答案 2 :(得分:0)
您需要将所有项目特定配置(如连接字符串等)复制到主app.config中。