2012-08-16 58 views
2

我的代碼是HttpClient.PostAsJsonAsync不能老是序列化繼承財產

public class BaseDTO 
{ 
    public int Id { get; set; } 
    public string Code { get; set; } 
    public string Name { get; set; } 
} 
public class DataDTO : BaseDTO 
{ 
    public int Level { get; set; } 
    public DateTime ChangedDate { get; set; } 
} 

我調用由HttpClient的

static void Main(string[] args) 
    { 
     var httpClientHandler = new HttpClientHandler(); 
     httpClientHandler.UseDefaultCredentials = true; 
     var client = new HttpClient(httpClientHandler); 

     client.BaseAddress = new Uri("http://localhost/"); 

     client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
     var dto = new DataDTO() 
      { 
       Id = 1, 
       Code = "a", 
       Name = "A", 
       Level = 10, 
       ChangedDate = DateTime.Now 
      }; 
     HttpResponseMessage resp = 
      client.PostAsJsonAsync(
       "api/MyApi/Creat", dto).Result; 

     if (resp.IsSuccessStatusCode) 
     { 

     } 
    } 

當我調試,我發現,收到服務器的數據,「ID Web的API 「,」代碼「和」名稱「都是從基類繼承的,」Level「和」ChangedDate「都是正確的。

我使用Google搜索,但找不到我的理由。

回答

0

改爲使用restsharp,效果不錯