我有一个控制台应用程序和一个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
> ConfigSectionGroup /
> ConfigSectionGroup / ConfigSection
> ConfigSectionGroup / ConfigSection /
> ConfigSectionGroup / ConfigSection / test
> ConfigSectionGroup / ConfigSection / test /
>你总是在你的GetConfiguration方法中返回null,但是我将假设这只是在问题中,而不是在你的实际代码中.
>更重要的是,ConfigPath值的格式不正确.您有一个尾部斜杠ConfigSectionGroup / ConfigSection /,删除最后一个斜杠,它将能够找到该部分.
>最重要的是,您声明部分的配置系统将会将您的“值”存储在ConfigSection元素的属性中.喜欢这个
<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.它还包含有关如何将配置值存储在(像您的测试元素)的子元素中的信息.
总结以上是内存溢出为你收集整理的c# – ConfigurationSection ConfigurationManager.GetSection()始终返回null全部内容,希望文章能够帮你解决c# – ConfigurationSection ConfigurationManager.GetSection()始终返回null所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)