存在sectiongroup时读取自定义节[英] reading custom section when sectiongroup is present

本文是小编为大家收集整理的关于存在sectiongroup时读取自定义节的处理方法,想解了存在sectiongroup时读取自定义节的问题怎么解决?存在sectiongroup时读取自定义节问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

您好,我的配置文件如下所示

xml版本="1.0" 编码="utf-8"?><配置><configSections><sectionGroup name="connections" type="System.Configuration.ConfigurationSectionGroup, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" ><section name="test2" type="ELT.credentials, ELT, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /><section name="test1" type="ELT.credentials, ELT, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /></sectionGroup></configSections><连接><test2 connectionName="test2" dbUserID="test2"/><test1 connectionName="test1" dbUserID="test1"/></connections></configuration>

我正在尝试像这样访问部分的元素

ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();fileMap.ExeConfigFilename = @"abcd.exe.config";配置 config1 = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);string str = cmbConnections.SelectedItem.ToString();凭证 credential1 = 凭证();credential1 = config1.GetSection(str) as 凭证;txtDatabaseUserId.Text = credential1.DBUserID;


我的凭证文件是

class 凭证:ConfigurationSection{public 凭证(){}[ConfigurationProperty("connectionName")]public string ConnectionName{get { return (string)this["connectionName"];}set { this["connectionName"] = value;}}[ConfigurationProperty("dbUserID")]public string DBUserID{get { return (string)this["dbUserID"];}set { this["dbUserID"] = value;}}}


当我运行此代码时,它给了我一个错误"对象引用未设置为变量的实例".如何获取所有部分的 dbuserID 值.

推荐答案

对象引用未设置为对象实例

当您尝试使用属性或调用空对象的方法时会发生此错误.更多详情:这里[^]

Visual Studio DEBUGGER 的简单使用可以告诉您发生它的对象.只需查看堆栈跟踪并在该行上放置一个调试器.检查该行的对象并查看是否有任何一个为 null 并且您正在尝试使用该 objects 属性.处理相同.


目前,由于您尚未共享确切的行,因此在您共享的代码中指出您并不困难,因为我看到很多地方都可能发生这种情况.

本文地址:https://www.itbaoku.cn/post/1355923.html