是否有一种简单的方法可以从dll中读取全局application.exe.config
文件?
目前我正在将文件作为XmlDocument加载,但我想知道是否有更好的解决方案。
这就是我的意思:
我可以通过以下代码访问这些值:
Console.WriteLine(Properties.Settings.Default.SomeValue);
Settings类在Settings.Designer.cs文件中自动生成。
现在我有一个dll需要从主应用程序的配置文件中读取设置的情况。有没有一种简单的方法来实现这个目标?目前我正在将该文件作为XML文档阅读。
答案 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;