-1

次の xml を 1 つのクラスで (特定のプロパティを使用して) 逆シリアル化したい:

<test1>
    <field1>0</field1>
    <field2>1</field2>
    <field3>2</field3>
</test1>
<test2>
    <field4>0</field4>
    <field5>1</field5>
    <field6>2</field6>
</test2>
<test3>
    <field7>0</field7>
    <field8>1</field8>
    <field9>2</field9>
</test3>

私は次のようにクラスを書きました:

    [Serializable]
    public class Result
    {
        [XmlElement("test1")]
        public Test1 T1{ get; set; }

        [XmlElement("test2")]
        public Test2 T2 { get; set; }

        [XmlElement("test3")]
        public Test3 T3 { get; set; }

    }

    [Serializable]
    public class Test1
    {
        [XmlElement("Field1")]
        public Test1 Field1{ get; set; }

        [XmlElement("Field2")]
        public Test2 Field2{ get; set; }

        [XmlElement("Field3")]
        public Test3 Field3 { get; set; }

    }
....

残念ながら、デシリアライズ時に次のエラーが発生しました。

入力 xmlns='' は予期されていませんでした。

ご協力いただきありがとうございます。

よろしく、プロ

4

1 に答える 1

1

<Result>...</Result>XML の周りに要素を追加します。欠落している場合は、先頭に追加して追加します。別のルート要素が存在する場合は、その[XmlRoot("name")]要素をResultクラスに追加します。

XML シリアライゼーションの問題を解決する最も簡単な方法は、オブジェクトにデータを入力し、それを使用してシリアライズXmlSerializer.Serialize()し、結果の XML を確認することです。

于 2012-09-04T12:17:41.707 に答える