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