代码之家  ›  专栏  ›  技术社区  ›  Jürgen Steinblock

从链接的dll读取app.exe.config文件设置的简单方法

  •  1
  • Jürgen Steinblock  · 技术社区  · 14 年前

    有没有一个简单的方法可以从全球 application.exe.config 从dll文件? 目前我正在将该文件作为XML文档加载,但我想知道是否有更好的解决方案。

    我的意思是:

    • 如果我创建一个新的WinForms项目,我在项目属性中有一个设置选项卡,可以在其中添加一些简单的值(我希望访问每个应用程序的设置,而不是用户指定的设置)。
    • 通过我的代码,我可以通过以下方式访问这些值:

      Console.WriteLine(Properties.Settings.Default.SomeValue);
      

    设置类在文件settings.designer.cs中自动生成。

    现在我有了这样的例子,一个DLL需要从主应用程序的配置文件中读取设置。有没有一个简单的方法来实现这个目标?目前我正在以XML文档的形式读取该文件。

    2 回复  |  直到 14 年前
        1
  •  4
  •   Mark H    14 年前

    如果您实现 ApplicationSettingsBase 在您的dll中,它实际上会读取application.exe.config——您只需要向它添加相关的配置部分。编译器输出的.dll.config文件通常是一堆无用的垃圾,因为dll根本看不到它。

    获取所需内容的最简单方法是将设置文件添加到dll中并在dll中使用它-生成app.config时,将这些节复制到可执行文件中的app.config文件。(不幸的是,这不是自动的,应该是自动的)。

        2
  •  1
  •   Albin Sunnanbo    14 年前

    这取决于属性所属的位置。

    如果您在DLL中创建了一个设置文件,您只需将配置节复制到 app.config 主文件和您的dll将像往常一样读取其设置。

    如果设置为“全局”,则可以将设置设计器中的“访问修饰符”从“内部”更改为“公共”。但您需要引用主项目,但这通常会创建循环引用。解决这个问题的方法是使用全局设置(将修饰符更改为public)创建一个类库,您可以从所有项目中引用它。

    var fooSettingValue = SettingsProject.Properties.Settings.Default.FooSetting;