我有一个由父(执行)程序集引用的dll。在父程序集的app.config的ApplicationSettings部分中,我有一些可以以正常intellisense方式访问的设置(例如,Properties.Settings.Default.SMTPServer)。
如何从引用的dll访问这些设置?我显然不能使用intellisense,因为它们不在同一个程序集中!
答案 0 :(得分:0)
您是否从两个程序集中访问该值?
dll可以拥有自己的配置文件和应用程序设置。这开始是一个带有以它命名的配置文件的dll,但设置也可以移动到主应用程序。
我使用的另一种方法是将值分配给IoC,然后从Ioc中读取值(Ioc == Inversion of Control库)。您可以通过将值分配给单例类来执行相同的操作。
答案 1 :(得分:0)
您是否尝试在DLL项目中保存.settings文件,然后使用其[]运算符按名称访问该属性?
例如,假设您的DLL有一个MySettings.settings文件,其中没有特别的内容:
MySettings.Default [ “SomeSetting”];
(注意,我实际上没有尝试过这个,但经过一段时间的快速思考后似乎它应该起作用了)
我认为更好的解决方案是采取Chris的建议并使用单例或IOC机制,这样您就不必牺牲类型安全性。