如何从另一个程序集访问ApplicationSettings部分?

时间:2009-06-29 15:45:55

标签: c# settings

我有一个由父(执行)程序集引用的dll。在父程序集的app.config的ApplicationSettings部分中,我有一些可以以正常intellisense方式访问的设置(例如,Properties.Settings.Default.SMTPServer)。

如何从引用的dll访问这些设置?我显然不能使用intellisense,因为它们不在同一个程序集中!

2 个答案:

答案 0 :(得分:0)

您是否从两个程序集中访问该值?

dll可以拥有自己的配置文件和应用程序设置。这开始是一个带有以它命名的配置文件的dll,但设置也可以移动到主应用程序。

我使用的另一种方法是将值分配给IoC,然后从Ioc中读取值(Ioc == Inversion of Control库)。您可以通过将值分配给单例类来执行相同的操作。

答案 1 :(得分:0)

您是否尝试在DLL项目中保存.settings文件,然后使用其[]运算符按名称访问该属性?

例如,假设您的DLL有一个MySettings.settings文件,其中没有特别的内容:

MySettings.Default [ “SomeSetting”];

(注意,我实际上没有尝试过这个,但经过一段时间的快速思考后似乎它应该起作用了)

我认为更好的解决方案是采取Chris的建议并使用单例或IOC机制,这样您就不必牺牲类型安全性。