.NET环境下Configuration 与ConfigurationManager/ AppSettings 与 ConfigSections探讨
亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述.NET环境下Configuration 与ConfigurationManager/ AppSettings 与 ConfigSections探讨相关的知识,希望能为你提供帮助。
关于配置文件的设置,读取有不少细节需要注意的。A
一般情况下,配置文档会默认使用其下的AppSettings属性中的值。
以下为普通的VB代码实现方式:
Dim exeFileMap As ExeConfigurationFileMap = New ExeConfigurationFileMap()
exeFileMap.ExeConfigFilename = configFilePath
Dim configCache As Configuration
= ConfigurationManager.OpenMappedExeConfiguration(exeFileMap, ConfigurationUserLevel.None)
Dim rtnValue = configCache.AppSettings.Settings(strKey).Value
B 对于客户自定义的Section必须放在configSections中,在读取这些Section过程时。
需要根据App.Config文件路径,进行判断。
(1) 对于默认路径下App.Config, 可以直接用
【.NET环境下Configuration 与ConfigurationManager/ AppSettings 与 ConfigSections探讨】
Dim
nb As System.Collections.Hashtable
= CType(System.Configuration.ConfigurationManager.GetSection("MajorCommands"),_
System.Collections.Hashtable)
Dim rtnValue = nb(strkey)
(2) 对于人为定义的路径,即A中的情况
Dim myParamsSection As ConfigurationSection = configCache.GetSection("USERSECTION")
Dim myParamsSectionRawXml As String = myParamsSection.SectionInformation.GetRawXml()
Dim sectionXmlDoc As Xml.XmlDocument = New Xml.XmlDocument()
sectionXmlDoc.Load(New StringReader(myParamsSectionRawXml))
Dim handler As NameValueSectionHandler = New NameValueSectionHandler()
Dim handlerCreatedCollection As Specialized.NameValueCollection
handlerCreatedCollection = CType(handler.Create(Nothing, Nothing, sectionXmlDoc.DocumentElement), Specialized.NameValueCollection)
If Not handlerCreatedCollection.AllKeys.Contains(key) Then
Return defaultData
Else
Return handlerCreatedCollection(key)
End If
配置文件中需要增加
<
configSections>
<
section name ="USERSECTION"
type ="System.Configuration.DictionarySectionHandler" />
<
/configSections>
<
appSettings>
<
/appSettings>
<
USERSECTION>
<
!--Customize-->
<
add key ="key1" value ="https://www.songbingjia.com/android/SHINSHO"/>
<
add key ="key2" value ="https://www.songbingjia.com/android/SOJITZ"/>
<
add key ="key3" value ="https://www.songbingjia.com/android/SUMITOMO"/>
<
add key ="key4" value ="https://www.songbingjia.com/android/MITSUBISHI
ELECTRIC"/>
<
add key ="key5" value ="https://www.songbingjia.com/android/MITSUBISHI"/>
<
/USERSECTION>
当然,如果直接用XML读取控件,来实现也能达到同样的效果。
如果再有疑惑,请直接阅读微软的源代码
https://referencesource.microsoft.com/#System.Configuration
推荐阅读
- SQL Server-Resource Monitor worker appears to be non-yielding on Node 0
- Android项目引入actionbarsherlock作为library后混淆之后的异常
- webapp部署到tomcat服务器
- winxp系统如何安装格式工厂软件|winxp系统安装格式工厂工具的办法
- xp纯净版系统无法打开txt文本文档的处理办法
- xp系统qq邮箱下载附件打开不了如何处理
- 番茄花园xp系统怎样提升宽带连接速度|xp系统提升宽带连接速度的技巧
- win xp系统下如何设置QQ气泡|win xp系统下设置QQ气泡的办法
- win xp系统下excel表格数字显示不完整如何处理