【问题标题】:Where to put app.config file in solution with multiple projects- error将 app.config 文件放在具有多个项目的解决方案中的位置 - 错误
【发布时间】:2012-01-19 20:15:14
【问题描述】:

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

所以我的问题是将 app.config 文件放在哪里以便我可以正常读取它?我正在从 DLL 中读取它。必须这样,因为它是 3.tier 应用程序,所有层都是独立的。所以一个是数据层,业务逻辑和表示层。

请帮忙。

编辑:

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

所以我正在读取数据层 app.config 文件,如下所示:

SqlConnection konekcija = new SqlConnection(ConfigurationManager.AppSettings["skripta"]);

该类库项目中的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>

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

【问题讨论】:

  • 您有什么例外要提供吗?

标签: c# dll configurationmanager


【解决方案1】:

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

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

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

<connectionStrings>
    <add name="ConnString" connectionString="server..."/>
</connectionStrings>

在代码中:

ConfigurationManager.ConnectionStrings["ConnString"];

立即尝试。我很确定你做错了什么,因为你的代码应该可以工作。

【讨论】:

  • 你的意思是 app.config 文件吗?我有一个解决方案和 4 个项目。一种是 Windows 窗体应用程序。和其他的是类库。我已将 app.config 复制到 windows 窗体项目但仍然没有...
  • 如果你的类库有 appsettings 部分并且你有一个 key/value ,请确保在部署之前你也会在主项目的 app.config 中拥有它。您如何读取这些值?
  • 这是正确的,一个技巧是将ConfigurationMangager 包装在一些带有接口的自己的类中以提高TTD 能力。但这只是一些额外的好处,而不是这个问题。
【解决方案2】:
You can add app config file in windows application. You can access it by using ConfigurationManager class.

也可以参考这个链接,希望对你有帮助。

访问http://msdn.microsoft.com/en-us/library/ms184658%28v=vs.80%29.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    相关资源
    最近更新 更多