如何使用wcf REST服务获取自定义对象的json响应?

时间:2011-07-04 10:32:36

标签: wcf wcf-rest

如何序列化对象以返回自定义类型?

//The response is null. 
http://localhost:50604/GameService/Getbyid?id=1

[WebGet(ResponseFormat = WebMessageFormat.Json)]
public MyClass GetById(int id)


[DataContract]
[KnownType(typeof(User))]
public partial class MyClass
{
    [DataMember]
    public int Id { get; set; }
    [DataMember]
    public string Name { get; set; }
    [DataMember]
    public int? CreatedBy { get; set; }
    [DataMember]
    public virtual User CreatedByUser { get; set; } //How will I serialize this?
}

1 个答案:

答案 0 :(得分:0)

您的操作缺少UriTemplate,因此您的ID可能永远不会传入,并且您的方法使用默认值= 0.

试试这个:

[WebGet(UriTemplate="Getbyid?id={id}", ResponseFormat = WebMessageFormat.Json)]
public MyClass GetById(int id)

CreatedByUser如果已填写,则会自动序列化,如果用户也是数据合同。