将app.config文件放在具有多个项目的解决方案中的位置 - 错误

Den*_*nth 0 c# dll configurationmanager

我有一个问题.我已经制定了解决方案,它是3层应用程序.所以我有3个项目是类库,一个是windows表单应用程序,它将使用我启动所有这些并将它们连接在一起.问题是我有数据层app.config文件.如果我把它放在那个dll中那么我就读不懂了.如果我把它放在主程序(Windows窗体应用程序)中,我仍然无法读取它.

所以我的问题是放置app.config文件的位置,以便我能正常阅读?我正在从DLL中读取它.它必须是这样的,因为它是3.tier应用程序,所有层都是自己的.所以一个是数据层,商务逻辑和表示层.

请帮忙.

编辑:

好的,我会传递一些代码:

所以我从数据层app.config文件中读取如下:

SqlConnection konekcija = new SqlConnection(ConfigurationManager.AppSettings["skripta"]);
Run Code Online (Sandbox Code Playgroud)

该类库项目中的app.config文件是:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
  <appSettings>
    <add key="skripta"
           value="Data Source=DENONTH-PC;Initial Catalog=rups;Integrated Security=True;Pooling=False" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我在该类librabry和Windows窗体项目中有app.config,但仍然没有正确引用它.

Iam*_*per 7

通常我每个项目都有一个app.config,但实际值保存在主(通常是UI)应用程序的配置中.然后我创建了一些Core/Utility项目,在那里我创建了一个负责公开配置键/值的类.Core/Utility项目没有依赖关系,但可以(并且!)由任何需要配置值的项目引用.如果有一天我想切换到例如数据库驱动的配置,它给了我一个非常简单的抽象层.

所以最后:把所有东西放在windows窗体配置中.如果使用ConfigurationManager类,它应该可以从类库中完全访问.

编辑#1:首先,如果你想存储和使用连接字符串,请正确执行,这意味着:在app.config中:

<connectionStrings>
    <add name="ConnString" connectionString="server..."/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

在代码中:

ConfigurationManager.ConnectionStrings["ConnString"];
Run Code Online (Sandbox Code Playgroud)

现在试试.我很确定你做错了,因为你的代码应该正常工作.