Xamarin C#-INotifyPropertyChanged模型-JSON反序列化中出错
我有一个与Azure移动服务同步的c#用户模型。 用户类的定义如下: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
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。先检查一下。