如何从引用的类库中读取Application.Setting

时间:2010-09-08 10:36:27

标签: c# c#-4.0 app-config

方案: 我有2个项目,MainApplication(编译为exe)和ClassLibrary1。 现在MainApplication引用或加载ClassLibrary1,但ClassLibrary1不知道MainApplication。

但我想使用MainApplication中定义的设置(Dot.Net 2.0的Properties.Settings NOT appSettings)。

你是如何实现这一目标的?

我似乎有很多使用

的例子
System.Configuration.ConfigurationSettings.AppSettings.Get("SettingName");

这与我的情况无关,因为appSettings是旧学校,而我正在使用较新的Properties.Settings机制。

感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

我在代码中做了一些调查。 我可以得到这样的设置,但它真的很脏:

((ClientSettingsSection)ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).SectionGroups["applicationSettings"].Sections["MainApplication.Properties.Settings"]).Settings.Get("Tester").Value.ValueXml.InnerText;

也许有人可以提供更优雅的解决方案

答案 1 :(得分:0)

由于在Main项目中定义了Settings类,因此您无法直接从类项目访问它,因为您将创建循环依赖项。 你要做的是为类库提供一个委托,它可以调用它来动态检索主项目中的设置。创建一个在类库中存储委托的类,并将此委托设置为Main项目中定义的方法。此方法将封装检索设置所需的指令。

在我看来,appSettings不是老派,它只是一种表示用户不具体或可定制的配置参数的方式。