gpt4 book ai didi

.net-3.5 - .NET 3.5 DLL 使用自己的配置文件

转载 作者:行者123 更新时间:2023-12-04 14:52:58 25 4
gpt4 key购买 nike

我需要一个 .NET 3.5 DLL 有自己的配置文件。这个 DLL 可以从许多不同的应用程序调用,因此存储在配置文件中的信息(如连接字符串)需要保存在 DLL 可以引用的配置文件中。我想要的是在使用 DLL 时,我需要将用于引用信息的配置文件“切换”为 DLL 配置文件。然后,当 DLL 使用配置信息完成时,切换回默认设置。 DLL 是使用 .NET 3.5 编写的。我一直在寻找如何做到这一点,我一直在寻找如何将信息与 exe 的 app.config 文件合并。就我而言,我不知道如何使用此 DLL 来修改任何 exe 的 app.config 文件。这个解决方案需要是独立的。但是,我用于创建 DLL(包含业务对象)的基类期望在配置文件中查找连接字符串和其他信息,这就是为什么我需要在它时“切换”到我的 DLL 配置文件被访问,然后将其切换回来,这样我就不会弄乱调用 DLL 的 exe 应用程序。

最佳答案

.NET 2.0 及更高版本的配置系统为您提供功能 - 您可以例如按需加载特定的配置文件。这需要更多的工作 - 但它有效。

你必须做这样的事情:

// set up a exe configuration map - specify the file name of the DLL's config file
ExeConfigurationFileMap map = new ExeConfigurationFileMap();
map.ExeConfigFilename = "ConfigLibrary.config";

// now grab the configuration from the ConfigManager
Configuration cfg = ConfigurationManager
.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);

// now grab the section you're interested in from the opened config -
// as a sample, I'm grabbing the <appSettings> section
AppSettingsSection section = (cfg.GetSection("appSettings") as AppSettingsSection);

// check for null to be safe, and then get settings from the section
if(section != null)
{
string value = section.Settings["Test"].Value;
}

您还需要确保正在构建类库 DLL 的配置并将其复制到您可以访问的位置。最坏的情况是您需要指定特定的配置文件,并通过在 Visual Studio 属性窗口中设置其“复制到输出目录”属性来确保将其复制到输出目录。

您还应该在 CodeProject 上查看 Jon Rista 关于 .NET 2.0 配置的三部分系列。
  • Unraveling the mysteries of .NET 2.0 configuration
  • Decoding the mysteries of .NET 2.0 configuration
  • Cracking the mysteries of .NET 2.0 configuration

  • 强烈推荐,写得很好,非常有帮助!

    马克

    关于.net-3.5 - .NET 3.5 DLL 使用自己的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1544263/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com