C# DLL 的独立设置 - 已更新

本文关键字:已更新 设置 独立 DLL | 更新日期: 2023-09-27 18:34:31

我已经寻找了一段时间,但没有结果。

我正在处理一个项目,该项目有很多部分,其中大部分我无法直接访问,但它是可扩展的。所以我为它写了一个 dll,但问题是我需要能够提供某种可以更新的设置/配置,而无需重新编译 dll。

我无权访问主exe的app.config.并且vs2010创建的settings/dll.config未被dll拾取。

这真的可能吗? DLL 的独立操作配置文件?

新更新。 - 我创建了一个settings.settings文件,并且都成功拾取了配置数据,但是在编译时似乎将其烘焙到文件中,当我在部署后编辑配置时,它不会拾取更改。我尝试了下面的第一个答案,但没有用。

谢谢

C# DLL 的独立设置 - 已更新

是的,使用系统配置命名空间,您可以创建一个配置节,该节可用于存储您喜欢的任何配置属性:

public class MyConfigurationSection : ConfigurationSection
{
    [ConfigurationProperty("MyProperty")]
    public string MyProperty
    {
        get { return (string)this["MyProperty"] }
        set { this["MyProperty"] = value;
    }
}

然后,在装配项目中,您可以读取特定于装配体的配置。如果你的程序集名为MyAssembly,那么GetSection((将查找一个名为MyAssembly.dll.config的配置文件:

var myConfig = (MyConfigurationSection)ConfigurationManager.GetSection("sectionName");
Console.WriteLine(myConfig.MyProperty);

我没有尝试这个具体的例子,但我以前不得不这样做。希望这有帮助!