2

我已经搜索了一段时间,但毫无结果。

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

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

这真的可能吗?一个 dll 的独立操作配置文件?

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

谢谢

4

1 回答 1

0

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

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);

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

于 2013-10-09T16:50:42.213 回答