【问题标题】:How to read values from multiple application configuration files in c#?如何从 C# 中的多个应用程序配置文件中读取值?
【发布时间】:2012-09-27 08:23:26
【问题描述】:

我的项目中有两个不同的application configuration 文件。 我需要在我的代码中从这两个config 文件中读取值。搜索了很多,发现大部分答案都是:使用ConfigurationManager。但我无法在我的代码中读取第二个config 文件。请帮忙。

示例: 1.app1.config 2.app2.config

如何读取app2.config的值?

【问题讨论】:

  • 这可能是圆形的,但你真正的问题是你没有遵守约定。如果一个应用程序需要另一个应用程序的配置文件,则它不是应用程序配置文件。只需有一个具有其他名称的文件,将常用值放入其中,让两个应用程序都对其进行读写。
  • 我需要这些单独的,以便在我的代码中单独阅读它们。
  • 不是我的意思。在代码中读取一个 xml 文件是微不足道的,读取两个是微不足道的,拥有两个 app.configs 则不是。

标签: c# app-config config


【解决方案1】:

从未在 .NET 中使用过 app.config,但另一种解决方案是使用 System.Xml 命名空间中的 Xml(XmlReader, XmlWriter),您可以为 Configuration 创建标签并使用任意数量的配置,所有这些都在一个文件。例如

<Configuration name="app1">

//here you would have your 1 configuration
</Configuration>

<Configuration name="app2">

//here you would have your 2 configuration
</Configuration>

【讨论】:

  • 在 app.config 中有可能吗?
  • 我不确定,因为我从未使用过 app.config(它本身使用 xml),但由于它为配置文件预定义,我猜它的 xml 标签也是预定义的,所以我认为它不可能(我可能是错了,但如果有可能你早就找到了)
【解决方案2】:

应用程序将使用名为 YourExcecutable.exe.config 的配置文件,默认情况下,该文件是包含在(可执行)项目中的文件 App.config。请注意,.NET 只为整个应用程序加载一个配置文件。不编码就不能使用多个配置文件(即每个库项目一个)。

  1. 您可以使用构建后事件和不同的解决方案配置将一个或另一个 App.Config 文件复制到输出文件夹

  2. 您可以使用 ConfigurationManager 类通过代码加载备用配置文件。

参考:

Handle multiple configuration files

Managing Multiple Configuration File Environments with Pre-Build Events

【讨论】:

  • 你能举个关于选项2的例子吗?
  • 用更新的部分检查我的答案。希望这会对你有所帮助。
  • System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.File = "App2.config"; here 如果我需要在 app2.config 中写一些东西,它会起作用吗?
  • 当我厌倦了从 app2.config 文件中读取值时,我得到了异常调用:System.NullReferenceException: Object reference not set to an instance of an object
  • 我已经和你分享了一个链接codeproject.com/Articles/5606/…,有一个类名AnyConfig。只需在您的项目中创建该类并按照该链接中的说明使用它。在同一链接中有一个演示项目,这将是一个有用的资源。
【解决方案3】:

最后我找到了处理multiple configuration files 的方法,唯一的方法是在主app.config 文件中使用SECTION 处理。

最好的方法是首先了解 .NET 配置。最好的来源是http://www.codeproject.com/Articles/16466/Unraveling-the-Mysteries-of-NET-2-0-Configuration

第一次真的很难理解,一旦你清楚了这个想法,你就可以在 .NET 中使用配置文件创造奇迹。这是我在整个互联网上找到的唯一解决方案。

谢谢你, 编码愉快。

【讨论】:

    猜你喜欢
    • 2019-03-22
    • 2012-09-27
    • 1970-01-01
    • 2022-09-27
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    相关资源
    最近更新 更多