2013-10-02 54 views
1

我運行測試,返回作爲響應一個動態對象(ExpandoObject)。動態對象作爲響應用於ServiceStack請求

它的工作原理,但JsonServiceClient不能轉換對象

,並返回JSON格式的數據和類型描述。

我們可以做的更好的東西?

 public class DynamicAPIRequest : IReturn<object> 
     { ... } 

     public object Post(DynamicAPIRequest request) 
     { 
     dynamic response = new ExpandoObject(); 
     response.Name = "Donald Duck";   
     response.Nephews = new List<nephew>(); 
     response.Nephews.Add(new nephew { name = "Huey" }); 
      ... 
     return response;   
     } 

在客戶端

  var nephews = client.Post<object>(new DynamicAPIRequest { uncle = "skroutz" }); 
      /* returns 
       {Name:Donald Duck,Nephews:[{__type:Test.Client.Model.nephew, 
       Test.Client.Model,name:Huey},{name:Dewey},{name:Louie}]} 

       */ 

我能做些什麼其他的?

回答

3

爲了擺脫__type屬性,你需要設置的配置序列來排除類型信息:

JsConfig.ExcludeTypeInfo = true; 

從mythz在this answer

默認情況下,__type只發出時它是反序列化所必需的,例如您的DTO包含一個接口,抽象類或後期綁定對象類型等

+0

邁克感謝它的工作原理,但不包括類型信息。我還有一個問題,如何derialize的JSON的變種類型(我在V4 -net.4但沒有結果測試DynamicJson.Deserialize) – stefan2410

相關問題