2011-07-04 19 views
0

オブジェクトをシリアル化してカスタムタイプを返すにはどうすればよいですか?wcf RESTサービスを使用してカスタムオブジェクトのjsonレスポンスを取得する方法は?

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

答えて

0

これを試してみてください、あなたのIDは、おそらくに渡されることはありませんので、あなたは、あなたの操作のためのUriTemplateが欠落しているし、あなたの方法は、デフォルト値= 0

で動作します:

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

CreatedByUserがシリアライズされますユーザーがデータ契約をしている場合は自動的に記入されます。

+0

私は既にuritemplateを追加しましたが、それでも返品オブジェクトを再評価しません。 – h3n

+0

「返品対象がわからない」とはどういう意味ですか? –

+0

私は "シリアル化する"申し訳ありません。..この行のコードを削除するとうまくいきます>> public virtual User CreatedByUser {get;セット; } – h3n

関連する問題