wcf使用数据协定服务REST POST或来自目标c的多个参数

时间:2012-12-14 05:22:15

标签: c# objective-c wcf web-services wcf-data-services

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

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

例如

[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怎么办? 该数据契约的属性,我只是传递的数值 两个属性?或者我是否要求它传递整个数据合同 仍然?

1 个答案:

答案 0 :(得分:0)

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

使用以下属性

装饰您的界面方法
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json,RequestFormat=WebMessageFormat.Json, BodyStyle=WebMessageBodyStyle.Wrapped)]