c# – ConfigurationSection ConfigurationManager.GetSection()
我正在尝试学习如何使用ConfigurationSection类.我曾经使用IConfigurationSectionHandler,但发布它已被贬值.所以成为一个好小伙子,我正在尝试“正确”的方式.我的问题是它总是返回null.
我有一个控制台应用程序和一个DLL. class Program { static void Main(string[] args) { StandardConfigSectionHandler section = StandardConfigSectionHandler.GetConfiguration(); string value = section.Value; } } 应用配置: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <sectionGroup name="ConfigSectionGroup"> <section name="ConfigSection" type="Controller.StandardConfigSectionHandler,Controller" /> </sectionGroup> </configSections> <ConfigSectionGroup> <ConfigSection> <test value="1" /> </ConfigSection> </ConfigSectionGroup> </configuration> DLL中的section handler: namespace Controller { public class StandardConfigSectionHandler : ConfigurationSection { private const string ConfigPath = "ConfigSectionGroup/ConfigSection/"; public static StandardConfigSectionHandler GetConfiguration() { object section = ConfigurationManager.GetSection(ConfigPath); return section as StandardWcfConfigSectionHandler; } [ConfigurationProperty("value")] public string Value { get { return (string)this["value"]; } set { this["value"] = value; } } } } 有什么值得我尝试的“ConfigPath”它将返回null,或者抛出一个错误,说“test”是一个无法识别的元素.我试过的价值: > ConfigSectionGroup 解决方法
你的代码有几个错误.
>你总是在你的GetConfiguration方法中返回null,但是我将假设这只是在问题中,而不是在你的实际代码中. <ConfigSectionGroup> <ConfigSection value="foo" /> </ConfigSectionGroup> 所以,把它放在一起: public class StandardConfigSectionHandler : ConfigurationSection { private const string ConfigPath = "ConfigSectionGroup/ConfigSection"; public static StandardConfigSectionHandler GetConfiguration() { return (StandardConfigSectionHandler)ConfigurationManager.GetSection(ConfigPath); } [ConfigurationProperty("value")] public string Value { get { return (string)this["value"]; } set { this["value"] = value; } } } 要了解有关如何配置配置部分的更多信息,请参阅这个出色的MSDN文档:How to: Create Custom Configuration Sections Using ConfigurationSection.它还包含有关如何将配置值存储在(像您的测试元素)的子元素中的信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |