RestSharp を使用してデータを取得し、WCF に投稿しています。複合型の逆シリアル化は期待どおりに機能しています。ただし、複雑な型 (具体的にはジェネリック リスト) を含む要求を投稿すると、WCF サービスでのこれらのリストの数が常にゼロになることに気付きました。RestSharp XmlSerializer で簡単なテストを行うと、次のことに気付きました。
次のオブジェクトをシリアル化しようとすると、リスト項目はシリアル化されません。
var myObj = new SomeObject()
{
Id = 1,
Name = "Somename",
Items = new List<string> {"itemA", "itemB"}
};
var ser = new XmlSerializer(); //RestSharp serializer
var result = ser.Serialize(myObj);
return result;
結果のxml:
<SomeObject>
<Name>Somename</Name>
<Id>1</Id>
<Items>
<String />
<String />
</Items>
</SomeObject>
ただし、標準の .Net XmlSerializer を使用すると、結果は次のようになります。
- <SomeObject xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Name>Somename</Name>
<Id>1</Id>
- <Items>
<string>itemA</string>
<string>itemB</string>
</Items>
</SomeObject>
複雑なタイプのリクエストを送信する場合、.NET XmlSerializer を登録する必要がありますか? または私は何かを忘れていますか?