2

何らかの理由で、シリアル化中に空のリストが 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();
     }
}

反映するように編集

4

1 に答える 1

0

このXmlSerializer配列のサイズがわからないため、空の配列をシリアル化できません。最初に配列を初期化してから、シリアル化してみてください。

WeightOZIdentifiers = new string[10];
于 2013-09-16T15:24:02.723 に答える