Xamarin C#-INotifyPropertyChanged模型-JSON反序列化中出错

Xamarin C#-INotifyPropertyChanged模型-JSON反序列化中出错,c#,.net,xamarin,xamarin.forms,C#,.net,Xamarin,Xamarin.forms,我有一个与Azure移动服务同步的c#用户模型。 用户类的定义如下: public class Users : INotifyPropertyChanged { [JsonProperty("Id")] private string id; [JsonIgnore] public string Id { get { return id; } set { id = value; OnPropert

我有一个与Azure移动服务同步的c#用户模型。 用户类的定义如下:

public class Users : INotifyPropertyChanged
{
    [JsonProperty("Id")]
    private string id;
    
    [JsonIgnore]
    public string Id
    {
        get { return id; }
        set { id = value; OnPropertyChanged("Id"); }
    }



    [JsonProperty("Name")]
    private string name;
    [JsonIgnore]
    public string Name
    {
        get { return name; }
        set { name = value; OnPropertyChanged("Name"); }
    }

    [JsonProperty("Email")]
    private string email;
    [JsonIgnore]
    public string Email
    {
        get { return email; }
        set { email = value; OnPropertyChanged("Email"); }
    }

    [JsonProperty("Password")]
    private string password;
    [JsonIgnore]
    public string Password
    {
        get { return password; }
        set { password = value; OnPropertyChanged("Password"); }
    }  
public event PropertyChangedEventHandler PropertyChanged;

    private void OnPropertyChanged(string propertyName)
    {
        if(propertyName != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
现在,在XAML页面代码中,一旦用户登录,我会尝试获取用户,如下所示:

var user = (await App.MobileService.GetTable<Users>().Where(u => u.Email == this.txtEmail.Text).ToListAsync()).FirstOrDefault();
var user=(wait App.MobileService.GetTable().Where(u=>u.Email==this.txtEmail.Text).ToListAsync()).FirstOrDefault();
如果删除私有和公共成员上的JsonProperty()和JsonIgnore(),则会出现错误:NewtonSoft.Json反序列化错误


在上面的代码中,除了分别在每个私有字段和公共字段上声明JsonProperty()和JsonIgnore之外,还有什么更简单的方法吗?

Stab In the dark,但我希望您需要以另一种方式使用JSON属性,即公共属性上的属性和私有字段上的忽略。抱歉,这不能回答你的问题。我认为,如果JSON属性与模型属性匹配,那么反序列化可以隐式进行,而不需要属性?如果将EF的类拆分为
UserEntity
,而不是一个类,会怎么样?可能使用automapper在类之间进行转换。它可能会引发异常,因为
PropertyChanged
事件为null。先检查一下。