【问题标题】:WCF Rest client and Transfer Encoding Chunked: Is it supported?WCF Rest 客户端和传输编码分块:是否支持?
【发布时间】:2009-11-11 01:34:46
【问题描述】:

我有一个如下定义的数据合同:

[DataContract(Namespace="",Name="community")]
public class Community {

    [DataMember(Name="id")]
    public int Id{get; set;}

    [DataMember(Name="name")]
    public string Name { get; set; }

    [DataMember(Name="description")]
    public string Description { get; set; }
}

服务合同是这样的:

[OperationContract]
   [WebGet(
                BodyStyle = WebMessageBodyStyle.Bare,
                ResponseFormat = WebMessageFormat.Xml, 
                UriTemplate = "{id}"
 )]
   Community GetCommunity(string id);

当我对主机进行休息调用时,我得到了数据,但只填充了 Id 和 Name 属性。描述属性为空!我通过从 ClientBase 继承来创建通道。

有谁知道为什么 WCF 序列化 Id 和 Name 而不是 Description?在主机的响应中,传输编码设置为“分块”,我想知道这是否与它有关?

【问题讨论】:

    标签: wcf rest chunked-encoding


    【解决方案1】:

    我发现某些属性没有被序列化,因为响应 xml 中的元素顺序不同。解决方案是在数据合同上明确设置序列化顺序。这是我添加订单属性后的数据合同:

     [DataContract(Namespace="",Name="community")]
    public class Community 
    {
        [DataMember(Name = "name",Order=2)]
        public string Name { get; set; }
    
        [DataMember(Name="id",Order = 1)]
        public int Id{get; set;}
    
        [DataMember(Name="description",Order=3)]
        public string Description { get; set; }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多