如何配置WebMethods以使用DataContractJsonSerializer

时间:2011-06-23 20:06:24

标签: c# asp.net ajax json

ASP.NET Web方法似乎使用JavaScriptSerializer,因为它忽略了我的对象上的[DataContract]和[DataMember]属性。

我有一个看起来像这样的对象:

[DataContract]
public class MyObject
{
    [DataMember("firstField")]
    public string FirstField { get; set; }
    [DataMember("secondField")]
    public string SecondField { get; set; }
}

我的网络方法如下:

[WebMethod]
public static IEnumerable<MyObject> GetData() { ... }

除此之外,我希望JSON属性名称为 firstField 而不是 FirstField

有没有办法配置WebMethods以使用DataContractJsonSerializer,以便它尊重DataMember注释?

1 个答案:

答案 0 :(得分:4)

[WebMethod]和任何数据合同序列化程序都是完全不相关的技术,它们不能混合使用。如果要使用DataContractJsonSerializer,则需要使用WCF,而不是[WebMethod]使用的旧ASMX技术。