1

.xml ファイルを読んでいますが、要素によっては、依存関係タグがある場合とない場合があります。

[XmlArray("dependencies"), XmlArrayItem("dependency")]
public List<string> Dependencies { get; set; }

<依存関係>がない場合、リストをnullに設定したいので、やってみました

List<string> Dependencies = null;

ただし、xml を逆シリアル化すると、依存関係が Count=0 と表示されます。nullに設定して表示したいので、シリアライズして戻すときに、空の<依存関係/>タグがxmlファイルの無駄な混乱として取得されないようにします。これは、単純に= nullに設定した文字列では見事に機能しましたが、リストではうまくいきません。

4

4 に答える 4

3

XmlArray 属性で IsNullable プロパティを使用する

[System.Xml.Serialization.XmlArray("dependencies", IsNullable=true)]

副作用はxsi:nill=true、要素に属性を取得することですdependenciesが、スキーマがそれをサポートしている場合、それは少額です。

于 2013-11-14T12:09:58.260 に答える
0

この同様の質問を参照してください。ここでの提案は、パラメーターなしで [XmlArray] を使用することです。IsNullable では、必要なクリーンな XML を取得できません。

于 2013-11-14T12:14:16.103 に答える
0

IsNullable 属性を true に設定してみてください。

[XmlArray("dependencies"), XmlArrayItem("dependency"), IsNullable = true]
public List<string> Dependencies { get; set; }
于 2013-11-14T12:10:05.830 に答える