无法计算可移植类库对象属性

时间:2016-09-20 14:18:29

标签: xamarin xamarin.android portable-class-library

我在序列化pcl类对象时遇到问题,因为无法计算类对象属性。我的解决方案的结构有三个项目 -

  1. Xamarin.Android,参考服务和Dto
  2. PCL(用于服务),参考Dto(目标框架:.Net Framework 4.5,ASP.Net Core 1.0,Windows 8,Windows Phone 8.1,Xamarin.Android,Xamarin.iOS,Xamarin.iOS(经典)
  3. PCL(适用于Dto))(目标框架:.Net Framework 4.5,ASP.Net Core 1.0,Windows 8,Windows Phone 8.1,Xamarin.Android,Xamarin.iOS,Xamarin.iOS(经典)
  4. solution structure

    我的服务类中有一个方法,如 -

    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”在调试中访问它们。我附上了它的截图。

    enter image description here

    电子邮件和密码属性是公开的。

    谢谢, 马文

1 个答案:

答案 0 :(得分:0)

@Jack的评论帮助我找出罪魁祸首。在Xamarin.Android属性设置 - > Android选项 - &gt;链接器中,目前它设置为“SDK和用户程序集”。我将其更改为“仅SDK程序集”,这解决了这个问题。