Search code examples
wcfwcf-rest

How to get json response of a custom object using wcf REST services?


How can I serialize an object to return a custom type?

//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?
}

Solution

  • You are missing UriTemplate for your operation so your Id is probably never passed in and your method works with default value = 0.

    Try this:

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

    CreatedByUser will be serialized automatically if filled and if User is data contract as well.