休息,杰森,.Net4 和复杂数据类型

本文关键字:复杂数据类型 杰森 休息 Net4 | 更新日期: 2023-09-27 18:32:46

我一直在尝试创建一个基于REST的WCF服务发送和接收json数据。 我能够让大多数事情正常工作,但最后一块真的难倒了我。

我正在向我的服务发送复杂的数据类型。 我正在发送数据,但似乎我的类没有被实例化。

声明(在单独的类文件中(:

public class WhereItsAt
{
    public float Latitude { get; set; }
    public float Longitude { get; set; }
    public string Category { get; set; }
    public string SearchTerms { get; set; }
    public float Distance { get; set; }
}

    [WebInvoke(Method = "POST", UriTemplate = "/New", RequestFormat = WebMessageFormat.Json)]
    public string Create(WhereItsAt newstuff)
    {
        return string.Format("Success: {0} <Should show search terms here>", newstuff.SearchTerms);
    }

问题是新东西。搜索词(好的,所有新内容(为 null 或 0。

如果我修改我的类:

public class WhereItsAt
{
    public float Latitude { get; set; }
    public float Longitude { get; set; }
    public string Category { get; set; }
    public string SearchTerms { get{return "hello"}; set; }
    public float Distance { get; set; }
}

它返回数据。

我正在打电话给小提琴手:

POST http://127.0.0.1:8835/testing/New HTTP/1.1用户代理:提琴手主机:127.0.0.1:8835内容长度:122内容类型:应用程序/json;字符集=UTF-8

[{"纬度":43.34,"经度":45.234,"类别":"尚未设置","搜索词":"市中心","距离":12.234}]

在我看来,我的类好像没有被实例化。 我在集合中创建了一些虚拟代码

{

set{int i = 1;};

但是如果我在集合中创建断点,则永远不会调用它。

我做错了什么?

休息,杰森,.Net4 和复杂数据类型

您需要将

DataContract 和 DataMember 属性添加到数据模型中...

见 http://msdn.microsoft.com/en-us/library/ms733127.aspx

[DataContract]
public class WhereItsAt
{
    [DataMember] public float Latitude { get; set; }
    [DataMember] public float Longitude { get; set; }
    [DataMember] public string Category { get; set; }
    [DataMember] public string SearchTerms { get{return "hello"}; set; }
    [DataMember] public float Distance { get; set; }
}