1

私はWCFを使用しています。次のモデルクラスがあります。オブジェクトのシリアル化リストcIntListプロパティNameが失われた場合。私はここで答えを見つけました: クラスが List<> から継承された場合、XmlSerializer は他の属性をシリアル化しません。ただし、同じシリアル化を変更するだけのコンテナー クラスを構築しないことが重要です。私の期待に沿ってシリアライズできるようにクラスを変更するのを手伝ってくれる人はいますか?

   public class IntData
    {
        public int Value;
        public IntData()
        {
        }
    }

    public class cIntList : List<IntData>
    {
        public string Name;

        public cIntList()
        {
            Name = "Name";
            this.Add(new IntData() { Value = 1 });
            this.Add(new IntData() { Value = 2 });
        }
    }
4

1 に答える 1

1

クラスを変更すると、名前フィールドもシリアル化されます。

public class cIntList
{
    public string Name{ get; set; }

    [XmlElement("")]
    public List<IntData> IntList{ get; set; }

    public cIntList()
    {
        Name = "Name";
        IntList = new List<IntData>();
        IntList.Add(new IntData() { Value = 1 });
        IntList.Add(new IntData() { Value = 2 });
    }
}

目的の xml に応じて、XmlElement 属性を変更または削除できます。

于 2013-09-12T14:06:26.823 に答える