ConfigurationManager - 获取部分组内的部分
ConfigurationManager - get section inside of section group
我正在尝试做一些非常简单的事情:读取属于我的 App.config 文件中的分区组的分区的内容。
这应该很简单吧?
原来我已经尝试这样做了一个小时,进行了大量的谷歌搜索和调试,但我就是做不到。当我使用 ConfigurationManager.GetSection
时,它会 returns null
- 这仅在所需部分不属于部分组时有效。
到目前为止,我只找到了 Microsoft 的 this 页面,该页面建议我自己解析 XML。认真的!?!?
我希望有人能帮助我,因为现在这让我想在 5 分钟内用 YAML 破解它,并且以后再也不使用 .NET。
您应该能够以 key/value 对的形式访问它们:
NameValueCollection section = (NameValueCollection)ConfigurationManager.GetSection("SectionName");
string userName = section["userName"];
尝试投射,看看是否能得到相同的结果。
如果不是 XML 的 Linq 答案总是一个很好的后备。
var section = XDocument.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile).Root.Element("SectionName");
var userName= (string)section.Element("SomeElement").Elements("add")
.Where(x => (string)x.Attribute("key") == "userName")
.Single().Attribute("value");
我知道这个问题很老,但我想提交正确答案。
当您尝试从项目的 App.config 或 Web.config 中的某个部分读取值但该部分在一个部分组中时,您可以将这些值作为 key/value 对,如上一个答案所述。但是您不能只传递节名称,您必须传递格式为 {SectionGroupName}/{SectionName} 的字符串,如下所示:
var section = (NameValueCollection)ConfigurationManager.GetSection("SectionGroupName/SectionName");
var value = section["key"];
我正在尝试做一些非常简单的事情:读取属于我的 App.config 文件中的分区组的分区的内容。
这应该很简单吧?
原来我已经尝试这样做了一个小时,进行了大量的谷歌搜索和调试,但我就是做不到。当我使用 ConfigurationManager.GetSection
时,它会 returns null
- 这仅在所需部分不属于部分组时有效。
到目前为止,我只找到了 Microsoft 的 this 页面,该页面建议我自己解析 XML。认真的!?!?
我希望有人能帮助我,因为现在这让我想在 5 分钟内用 YAML 破解它,并且以后再也不使用 .NET。
您应该能够以 key/value 对的形式访问它们:
NameValueCollection section = (NameValueCollection)ConfigurationManager.GetSection("SectionName");
string userName = section["userName"];
尝试投射,看看是否能得到相同的结果。 如果不是 XML 的 Linq 答案总是一个很好的后备。
var section = XDocument.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile).Root.Element("SectionName");
var userName= (string)section.Element("SomeElement").Elements("add")
.Where(x => (string)x.Attribute("key") == "userName")
.Single().Attribute("value");
我知道这个问题很老,但我想提交正确答案。
当您尝试从项目的 App.config 或 Web.config 中的某个部分读取值但该部分在一个部分组中时,您可以将这些值作为 key/value 对,如上一个答案所述。但是您不能只传递节名称,您必须传递格式为 {SectionGroupName}/{SectionName} 的字符串,如下所示:
var section = (NameValueCollection)ConfigurationManager.GetSection("SectionGroupName/SectionName");
var value = section["key"];