【发布时间】:2017-01-28 12:36:16
【问题描述】:
我在序列化 pcl 类对象时遇到问题,因为无法评估类对象属性。我的解决方案结构包含三个项目 -
- 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(Classic)
- PCL(用于 Dto))(目标框架:.Net Framework 4.5、ASP.Net Core 1.0、Windows 8、Windows Phone 8.1、Xamarin.Android、Xamarin.iOS、Xamarin.iOS(Classic)
我的服务类中有一种方法,例如 -
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 周。我不完全理解链接器设置以及在调试和发布中应该使用什么。你能告诉我更多吗?不过我不需要无参数构造函数。
标签: xamarin xamarin.android portable-class-library