LINQ を使用して XML ファイルをカスタム オブジェクトに解析するときに、NULL 値がないようにしようとしています。
Scott Gu's blogでこれに対する優れた解決策を見つけましたが、何らかの理由で整数に対しては機能しません。同じ構文を使用したと思いますが、何かが足りないようです。ああ、何らかの理由で、ノードが空でない場合に機能します。
以下は私のコードの抜粋です。
List<GrantAgresso> lsResult = (from g in xml.Element("root").Elements("Elementname")
select new GrantAgresso()
{
Year = (int?)g.Element("yearnode") ?? 0,
Subdomain = (string)g.Element("domainnode") ?? ""
}).ToList();
エラーメッセージは次のとおりです。
入力文字列は、正しい形式ではありませんでした。
誰かが私が間違っていることについての手がかりを持っている場合は、助けてください:)
編集:XMLの一部(奇妙な名前ですが、選択によるものではありません)
<Agresso>
<AgressoQE>
<r3dim_value>2012</r3dim_value>
<r0r0r0dim_value>L5</r0r0r0dim_value>
<r7_x0023_province_x0023_69_x0023_V005>0</r7_x0023_province_x0023_69_x0023_V005>
<r7_x0023_postal_code_x0023_68_x0023_V004 />
<r7_x0023_country_x0023_67_x0023_V003>1004</r7_x0023_country_x0023_67_x0023_V003>
<r7_x0023_communitydistrict_x0023_70_x0023_V006>0</r7_x0023_communitydistrict_x0023_70_x0023_V006>
</AgressoQE>
</Agresso>