3

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

4

0 回答 0