无法评估可移植 class 库对象属性
Portable class library object properties cannot be evaluated
我在序列化 pcl class 对象时遇到问题,因为无法评估 class 对象 属性。我的解决方案的结构包含三个项目 -
- Xamarin.Android、参考服务和 Dto
- PCL(对于服务),参考 Dto(目标框架:.Net Framework 4.5,ASP.Net Core 1.0,Windows 8,Windows Phone 8.1, Xamarin.Android, Xamarin.iOS, Xamarin.iOS(经典)
- PCL(对于 Dto))(目标框架:.Net Framework 4.5,ASP.Net Core 1.0,Windows 8,Windows Phone 8.1 , Xamarin.Android, Xamarin.iOS, Xamarin.iOS(经典)
我的服务中有一种方法 class 比如 -
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"变量。然而,问题是当序列化行发生时,它什么也没有序列化。 "user" 对象似乎无法访问或显示两个属性 "Email" 和 "Password"。但是我可以使用 "user.Email" 在调试中访问它们。我附上了它的截图。
电子邮件和密码属性为 public。
谢谢,
马文
@Jack 的评论帮助我找出了罪魁祸首。在Xamarin.Android属性settings->Androidoptions->linker,目前设置为"SDK and User assemblies"。我将其更改为 "SDK Assemblies Only",这解决了问题。
我在序列化 pcl class 对象时遇到问题,因为无法评估 class 对象 属性。我的解决方案的结构包含三个项目 -
- Xamarin.Android、参考服务和 Dto
- PCL(对于服务),参考 Dto(目标框架:.Net Framework 4.5,ASP.Net Core 1.0,Windows 8,Windows Phone 8.1, Xamarin.Android, Xamarin.iOS, Xamarin.iOS(经典)
- PCL(对于 Dto))(目标框架:.Net Framework 4.5,ASP.Net Core 1.0,Windows 8,Windows Phone 8.1 , Xamarin.Android, Xamarin.iOS, Xamarin.iOS(经典)
我的服务中有一种方法 class 比如 -
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"变量。然而,问题是当序列化行发生时,它什么也没有序列化。 "user" 对象似乎无法访问或显示两个属性 "Email" 和 "Password"。但是我可以使用 "user.Email" 在调试中访问它们。我附上了它的截图。
电子邮件和密码属性为 public。
谢谢, 马文
@Jack 的评论帮助我找出了罪魁祸首。在Xamarin.Android属性settings->Androidoptions->linker,目前设置为"SDK and User assemblies"。我将其更改为 "SDK Assemblies Only",这解决了问题。