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

时间:2010-09-14 09:02:12

标签: c# .net vb.net configuration

是否有一种简单的方法可以从dll中读取全局application.exe.config文件? 目前我正在将文件作为XmlDocument加载,但我想知道是否有更好的解决方案。

这就是我的意思:

  • 如果我创建一个新的WinForms项目,我在Project属性中有一个Settings选项卡,我可以在其中添加一些简单的值(我想访问每个Application设置,而不是用户设置)。
  • 我可以通过以下代码访问这些值:

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

Settings类在Settings.Designer.cs文件中自动生成。

现在我有一个dll需要从主应用程序的配置文件中读取设置的情况。有没有一种简单的方法来实现这个目标?目前我正在将该文件作为XML文档阅读。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

取决于属性所在的位置。

如果您在dll中创建了一个设置文件,则只需将配置部分复制到主文件的app.config,您的dll就会照常读取其设置。

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

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