我有序列化pcl類對象的問題,因爲無法評估類對象屬性。我的解決方案的結構是具有三個項目 -無法評估便攜式類庫對象屬性
- Xamarin.Android,參考服務,和DTO
- PCL(對於服務),參考DTO(目標框架:.Net框架4.5,ASP.Net核心1.0 ,Windows 8,Windows Phone 8.1,Xamarin.Android,Xamarin.iOS,Xamarin.iOS(經典)
- PCL(for Dto))(目標框架:.Net Framework 4.5,ASP.Net Core 1.0,Windows 8,Windows Phone 8.1,Xamarin.Android,Xamarin.iOS,Xamarin.iOS(經典)
我在服務類像一個方法 -
public async Task<HttpResponseMessage> SignIn(string username, string password)
{
var user = new Dto.UserLogin(username, password);
var serialize = Newtonsoft.Json.JsonConvert.SerializeObject(user);
var content = new StringContent(serialize);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = null;
using (var client = GetClient("{urlhere}", username, "POST"))
{
response = await client.PostAsync("api/{methodname}", content);
}
return response;
}
上面的代碼不會引發錯誤,並可以實例化「用戶」變量。然而,問題在於,當序列化行發生時,它沒有序列化。似乎「用戶」對象無法訪問或顯示「電子郵件」和「密碼」這兩個屬性。但我可以通過使用「user.Email」在調試中訪問它們。我附上了它的截圖。
電子郵件和密碼屬性是公開的。
感謝, 馬文
您是否檢查過鏈接器設置是否有所作爲?嘗試使用鏈接器進行測試。還要檢查你試圖序列化的對象是否有一個默認的無參數構造函數。 – Jack
@傑克,謝謝!是的,鏈接器有所作爲。目前我的調試和發佈模式鏈接器設置被設置爲「SDK和用戶程序集」。如果我把它放回「無」,它將起作用。我從字面上來說是Xamarin開發的新手,確切的說是1周。我不完全理解鏈接器設置以及調試和發佈中應該使用的內容。你能告訴我更多關於它嗎?雖然我不需要無參數的構造函數。 – marvs