一个winform项目包含一个.exe可执行程序和若干.dll类库,在app.config里保存了一些应用程序设置,这些配置节是通过Settings.settings添加的,如果在.exe项目里访问app.config的配置,只需如下:
Properties.Settings.Default.FirstUserSetting = "abc";
     现在问题来了,如何在dll里访问Settings这个类?我的exe项目已经把这些dll引用了,如果在dll里再引用exe项目那就交叉引用了。
     请问这个问题大家都是如何处理的?不用Properties.Settings类?自己封装访问app.config的类?还有更好的方法?
     谢谢!

解决方案 »

  1.   

    DLL访问EXE的东东不是最佳实践,DLL应该自包含
      

  2.   

    需求读取配置的
    都放到exe里
    dll,只是接口、方法
    用参数方式传入,调用
      

  3.   

    注意一下,Properties.Settings默认是当前命名空间的,一般你的dll命名空间跟exe的命名空间是不一样的,所以访问不到config里面的settings,处理方式有3种
    1,自己访问exe.config文件,很简单的,就一个xml文件。
    2,dll和exe使用相同的命名空间,settings放到exe项目里面。
    3,dll和exe使用不同的命名空间,settings放到exe项目里面,但需要另外开一节,指明不同的命名空间,跟dll对应。