0

以前にも同様の質問がありましたが、私が抱えている問題に対する答えが見つかりません。

linq xml 関数を使用して config.xml 設定を辞書に変換したいのですが、常にPossible System.NullReferenceException. したがって、属性とその値が存在するかどうかを確認する必要があります。

それを行う構文は何ですか?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <Services>
    <add key ="key1"   value ="value1"></add>
    <add key ="key2"   value ="value2"></add>
    <add key ="key3"   value ="value3"></add>
 </Services>
</configuration>

私のラムダコード:

XDocument doc = XDocument.Load(configFilePath);
var d = (from name in doc.Descendants("Services") select name)
         .ToDictionary(n =>  n.Attribute("key")
         .Value, n.Attribute("value")
         .Value);
4

1 に答える 1

3

Descendants("add")の代わりに使用Descendants("Services")

var dict = XDocument.Load(configFilePath)
        .Descendants("add")
        .ToDictionary(n => n.Attribute("key").Value, n=> n.Attribute("value").Value);

var dict = XDocument.Load(configFilePath)
       .Descendants("Services").First()
       .Descendants("add")
       .ToDictionary(n => n.Attribute("key").Value, n=> n.Attribute("value").Value);
于 2013-01-17T19:31:46.253 に答える