Using ConfigurationManager's OpenExeConfiguration and GetSection,(Custom config file and section)
是否可以从app.config或web.config以外的配置文件中检索自定义配置节。
我尝试使用System.Configuration.ConfigurationManager的OpenExeConfiguration和GetSection方法一起调用,但没有运气。我的目的是为可互换的进程适配器定义自定义配置节,并将自定义配置节包含在除app.config和web.config之外的单独配置文件中。我看到了许多应用程序设置和连接字符串的例子。
1 2 3 4 5 6 7 8 9 | static private DigiKeyReadTaskConfigSection digiKeyReadTaskConfigSection; static DigiKeyReadTaskConfigSection DigiKeyReadTaskConfigSection { get { if (digiKeyReadTaskConfigSection == null) { digiKeyReadTaskConfigSection = (DigiKeyReadTaskConfigSection)ConfigurationManager.OpenExeConfiguration("ReadTask.config").GetSection("DigiKeyReadTaskConfigSection"); } return digiKeyReadTaskConfigSection; } } |
readtask.config文件位于应用程序的bin文件中:
1 2 3 4 5 | <configuration> <configSections> <section name="DigiKeyReadTaskConfigSection" type="DataReadInc.WebSiteRead.TaskConfigSection.DigiKeyReadTaskConfigSection, DataReadInc.WebSiteRead" /> <section name="ArrowReadTaskConfigSection" type="DataReadInc.WebSiteRead.TaskConfigSection.ArrowReadTaskConfigSection, DataReadInc.WebSiteRead" /> </configSections> <DigiKeyReadTaskConfigSection DigiKeySiteURL="http://search.digikey.com/scripts/DkSearch/dksus.dll?WT.z_header=search_go&lang=en&site=us&keywords=" SiteLogInURL="https://ordering.digikey.com/RegisteredUser/Login.aspx,formName=" SiteLoginId="X" SiteLoginPassword="X" /> <ArrowReadTaskConfigSection ArrowAmericaSiteURL="http://components.arrow.com/part/search/" SiteLoginURL="http://components.arrow.com/login/processlogin#" SiteLoginId="X" SiteLoginPassword="X" /> </configuration> |
我已经看到了使用Spring.net和J2EE实现的这种类型的设置,所以我确信这是可能的。我可以将我的自定义配置节放在app.config或web.config文件中,但是如果它们存在于自己的配置文件中,则会更干净。
使用configurationmanager.openmappedexeconfiguration()。