1

これを機能させるのに問題があります:

私のxmlは次のようになります:

<root>
    <item>
        <id></id>
        <name></name>
        <CollectionProp>
            <item>
                <id></id>
                <name></name>
            </item>
        </CollectionProp>
    </item>
</root>

私のクラスは次のようになります。

public class Item
{
    public int id { get; set; }
    public string name { get; set; }
    public List<CollectionProp> CollectionProp { get; set; }
}

そしてもう1つ:

public class CollectionProp
{
    public int id { get; set; }
    public string name { get; set; }
}

また、CollectionPropの周りに別のクラスをラップしようとしました

CollectionPropCollection : List<CollectionProp>

また、:/またはCollectionPropタイプのプロパティ「item」を持つCollectionPropCollectionクラスも試してみました。

これが私のexecuteステートメントです:

var result = client.Execute<List<Item>>(request);

8月19日編集:

わかりました、私の投稿は私の問題を明確に指摘していないかもしれません。だから今、私は問題を次のように分解したと思います:

XmlDeserializerには、下のアイテムと下のアイテムを区別するための問題があります

したがって、応答には2つの項目があり、それぞれに3つの項目があり、逆シリアル化された結果には8つのオブジェクトがあります。最初の値は値、次の3つはプロパティがnullに設定され、4番目は値などです。

次のような方法でこれを解決する方法はありますか:下のアイテムをobjectAに解析する必要があり、ルートの下のアイテムの子である下のアイテムをobjectBに解析する必要がありますか?

4

1 に答える 1

1

xml ファイルがシリアル化されている場合は、次の操作Itemを実行できます。

XmlSerializer serializer = new XmlSerializer(typeof(Item)); //or if you have a item variable item.GetType()
FileStream stream = new FileStream(pathToFile, FileMode.Open, FileAccess.ReadWrite);
Item item = (Item) serializer.Deserialize(stream);
stream.Close();

アップデート

typeof(Item)置き換えたばかりのアイテムのリストであり、typeof(List<Item>)それをにキャストする場合List<Item>

于 2011-08-12T13:16:57.897 に答える