方案: 我有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机制。
感谢您的帮助:)
答案 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不是老派,它只是一种表示用户不具体或可定制的配置参数的方式。