【顽症】客户端调用DLL类库项目时,config文件中自定义Section的顺序
来源:互联网 发布:mysql 指定账户已存在 编辑:程序博客网 时间:2024/06/02 17:25
工作中,需要开发一个DLL类库项目交给客户,一些环境配置需要写在config文件里。
如果是一个可执行的WinForm或者控制台项目,则只需要用ConfigurationManager类来操作就可以了,很方便;但换成成客户端调用DLL类库项目的结构,则要用另外的手段。
在.NET 2.0以后,要引入System.Configuratoin.dll(在.NET 1.0中,直接使用ConfigurationSettings类就可以了),这样才能使用ConfigurationManager类的接口。
1.新建一个ExeConfigurationFileMap实例;
2.设置其ExeConfigFilename属性为我们的配置文件所在路径(在项目中新建App.config文件后,如果是WinForm或者控制项目,编译后则会在debug及release目录中自动生成<项目名>.exe.config文件;如果是DLL类库项目,扩展名就会变成.dll.config);
3.使用ConfigurationManager.OpenMappedExeConfiguration方法来生成Configuration类型的实例,这样,Configuration类的AppSettings.Settings就可以像WinForm或者控制台项目中ConfigurationManager类的AppSettings集合同样的方式来使用了。
到此为止,已经打好了取配置文件中各种配置的基础了。但在配置文件中该怎么写呢?
一般情况下,我们会在配置文件的开始(也就是<configuration>)的地方首先写数据库的连接字符串等配置<connectionStrings>,在这之后我们再定义<configSections>及<sectionGroup>节点等,最后在C#代码中,通过config.SectionGroups[xxxxxx]得到一个ConfigurationSectionGroup的集合,就可以取出自定义Section中的值了。
但我最初这样写,根本无法得到自定义的这个Section,这是为什么呢?以为是自己程序哪里写错了,费了不少时间去找错,但找不出错;是不是遗漏了某些设置步骤,但仍然没问题。绞尽脑汁,在网上查来查去,最后终于找出解决方法了(当时找到这个解决点时我还只是抱着试试的态度,没当回事):
必须要把自定义的Section(<configSections>)写在<configuration>节点的开始位置。
原因在什么地方我不清楚,我想这个问题的原因对于我来说并不是最重要的,但至少花了很大功夫的问题终于解决了!
- 【顽症】客户端调用DLL类库项目时,config文件中自定义Section的顺序
- 【实践】客户端调用DLL类库项目,取DLL类库项目中config文件的资源
- 加密SO文件中自定义的section
- 加密SO文件中自定义的section
- 加密SO文件中自定义的section
- C# 编译的DLL文件在其他项目中调用时,看不见注释
- PB中调用DLL文件中类的成员
- C#项目中使用自定义dll类库简明教程
- PE的DLL调用顺序
- Java调用.dll库文件中定义的方法
- VC中动态链接库dll文件的调用
- Qt中调用VC6生成的动态库DLL文件
- qt中调用dll文件的方法
- DLL 学习(DLL的调用顺序)
- 在DLL编程中调用模版类时出现的类似"class“XXX”需要有 dll 接口由 class“XXX”的客户端使用"的warning的解决方案
- 在DLL编程中调用模版类时出现的类似"class“XXX”需要有 dll 接口由 class“XXX”的客户端使用"的warning的解决方案
- VC中调用动态库文件Dll
- 读取自定义的config文件
- HashTable的实现
- 关于ftp只能自己访问的问题
- Java有用知识
- 导入Custom的Master page(含自定义的CSS) 到Moss 2007
- GCC MakeFile Asrc 的设置-GCC ASM混合编译
- 【顽症】客户端调用DLL类库项目时,config文件中自定义Section的顺序
- PHP PCRE 整理
- 大学毕业前一定要看的9本书
- 【软件】Dreamweaver cs4 破解安装方法
- 2.6.31内核编译处理3个错误 (redhat)
- 一个Linux爱好者的2.6.11内核编译过程
- the Secret DAILY TEACHINGS-Day 40
- the Secret DAILY TEACHINGS-Day 41
- 字符串输入的陷阱