何らかの理由で、シリアル化中に空のリストが XmlSerializer に含まれることはありません。この動作が正しいかどうか、またはオーバーライドできるかどうかについてのドキュメントはあまり見つかりません。シリアル化しようとしている型のコードとシリアル化コードを含めて、誰かがこれに光を当てることができることを願っています。
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/FacilitySettings.xsd")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://tempuri.org/FacilitySettings.xsd", IsNullable=true)]
public class WeightSettings
{
public List<string> WeightOZIdentifiers
{
get
{
return this.weightOZIdentifiersField;
}
set
{
this.weightOZIdentifiersField = value;
}
}
}
public static string ToXmlString<T>(this T obj)
{
var builder = new StringBuilder();
using (var stringWriter = new StringWriter(builder))
{
var xml = new XmlTextWriter(stringWriter);
var serializer = new XmlSerializer(obj.GetType());
serializer.Serialize(xml, obj);
return builder.ToString();
}
}
反映するように編集