WCF HTTP Post:如何将 Json 数据绑定到 C# 模型
WCF HTTP Post: How to bind Json data to C# Model
我正在为现有的 WCF 应用程序创建一个 HTTP Post 方法。该方法将 C# 对象作为参数:
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "UpdateDetails", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public void UpdateDetails(MyObject myObject)
{
// Some logic
}
public class MyObject
{
public string Title { get; set; }
public string Details { get; set; }
}
如果 JSON 数据具有名为 'Title' 和 'Details' 的属性,它们将被映射到参数。但我想处理那些 JSON 属性更改时的情况。例如,如果发件人决定将 'Title' 更改为 'Event_Title',是否可以将 'Event_Title' 映射到 MyObject class 的 'Title' 字段?是否可以通过任何数据注释来完成?
使用[DataContract]
和[DataMember(Name = "name_as_it_will_appear_in_json")]
[DataContract]
public class MyObject
{
[DataMember(Name = "Event_Title")]
public string Title { get; set; }
[DataMember]
public string Details { get; set; }
}
我正在为现有的 WCF 应用程序创建一个 HTTP Post 方法。该方法将 C# 对象作为参数:
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "UpdateDetails", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public void UpdateDetails(MyObject myObject)
{
// Some logic
}
public class MyObject
{
public string Title { get; set; }
public string Details { get; set; }
}
如果 JSON 数据具有名为 'Title' 和 'Details' 的属性,它们将被映射到参数。但我想处理那些 JSON 属性更改时的情况。例如,如果发件人决定将 'Title' 更改为 'Event_Title',是否可以将 'Event_Title' 映射到 MyObject class 的 'Title' 字段?是否可以通过任何数据注释来完成?
使用[DataContract]
和[DataMember(Name = "name_as_it_will_appear_in_json")]
[DataContract]
public class MyObject
{
[DataMember(Name = "Event_Title")]
public string Title { get; set; }
[DataMember]
public string Details { get; set; }
}