4

私のXML:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Bank>
  <Customer id="0">
    <FName>Adam</FName>
    <LName>Kruz</LName>
    <Accounts>
      <Acount id="0" money="1500" />
      <Acount id="1" money="6500" />
    </Accounts>
  </Customer>
</Bank>

私のLINQコード:

private void loadCustomers()
{
    customers =
        (
            from c in XDocument.Load("database.xml").Root.Descendants("Customer")
            select
                new Customer((int) c.Attribute("id"), (string) c.Element("FName"), (string) c.Element("LName"))
                    {
                        accounts =
                            (
                                from a in c.Descendants("Account")
                                select new Account((int) a.Attribute("id"))
                                            {
                                                money = (double) a.Attribute("money")
                                            }
                            ).ToList()
                    }
        ).ToList();
}

問題:

クラスCustomerの一般的なリストがあります。このクラスには、3 つのプロパティと Account クラスの別の一般的なリストが含まれています。顧客データ (id、fname、lname) をロードできましたが、Accounts サブツリーからデータをロードする方法がわかりません:(

コードでエラーが発生する

タイプ 'System.ArgumentNullException' の未処理の例外が System.Xml.Linq.dll で発生しました - 追加情報: 値を null にすることはできません。

私はコードの多くのバリエーションを試してきましたが、それを機能させることができませんでした:( 誰かが Accounts サブツリーをロードする方法を動作するコードを投稿できますか? どうもありがとう!

4

2 に答える 2