我正在使用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?还是我忘记了什么?