0

我的服务中有几个“发布”操作合同需要接收多个参数。我使用 Json 作为格式。想知道是否

  • 预期的参数是 DataContract,如何创建来自目标 c 的 URI?我必须指定 UriTemplate 吗?以下是我拥有的两份合同。第一个处理 我能够以 JSON 格式检索的GET 。我的问题是如果我想修改和保存,我不知道如何将它传递回服务。

例如。

[ServiceContract]
    public interface ICalendarService
    {
        [OperationContract]
        [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "Event?eventId={eventId}&consumer={consumer}")]
        Event GetEvent(int eventId, string consumer);


[OperationContract]
        [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest)]
        bool UpdateEventDetails(Event event);

}

[DataContract]
public class Event{
  [DataMember]
  public int Id { get; set; }
  [DataMember]
  public string Name { get; set; }
  [DataMember]
  public string Notes { get; set; }
  [DataMember]
  public bool Private { get; set; }
  [DataMember]
  public string Date { get; set; }
  [DataMember]
  public int AuditedById { get; set; }
}
  • 我的下一个问题是关于帖子的最佳实践。我应该始终使用数据合同吗?如果我只想编辑/修改该数据合同上的 2 个属性,我是否只传递这两个属性的值?还是我仍然要求它通过整个数据合同?
4

1 回答 1

0

Event 类中不需要[DataContract][DataMember]属性。

只需使用以下属性装饰您的接口方法

[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json,RequestFormat=WebMessageFormat.Json, BodyStyle=WebMessageBodyStyle.Wrapped)]
于 2012-12-14T05:43:09.890 回答