私は新しい.NET 3.0 DataContractSerializerを使用しています。私はNullable < >とList <>オブジェクトをシリアル化しようとしています。例:出力XMLにオプションの(つまりNullable <>およびList <>)要素を作成しないようにDataContractSerializerを設定できますか?
[DataContract(Namespace = "")]
class Test
{
public static void Go()
{
Test test = new Test();
var dcs = new DataContractSerializer(typeof(Test));
dcs.WriteObject(new StreamWriter("test.xml").BaseStream, test);
}
[DataMember]
public Nullable<int> NullableNumber = null;
[DataMember]
public int Number = 5;
[DataMember]
public List<int> Numbers = new List<int>();
}
.NETはヌルまたは空のリストをシリアライズする場合XMLに、それが(空白可能のために)ゼロに入れ、空(リストの)要素。上記の例では、生成します。
<Test xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Number>5</Number>
</Test>
を実際に、上記のファイルのデシリアライズを:私はそうのように、余分NullableNumberと番号の要素を排除したい記述するための時間を持っていない理由のために
<Test xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<NullableNumber i:nil="true"/>
<Number>5</Number>
<Numbers xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
</Test>
シリアライザはうまくいきます。
ありがとうございました!