【问题标题】:wcf service REST POST with a Data Contract or multiple parameters from objective cwcf 服务 REST POST,带有数据协定或来自目标 c 的多个参数
【发布时间】:2014-01-11 15:11:12
【问题描述】:

我的服务中有几个“发布”操作合同需要接收多个参数。我使用 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 该数据合同上的属性,我是否只传递 两个属性?还是我要求它通过整个数据合同 还在吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    [OperationContract]
    [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json,RequestFormat=WebMessageFormat.Json, BodyStyle=WebMessageBodyStyle.Wrapped)]
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-31
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多