我使用newtonsoft json的解串器,和我deserialising一個包裝裏面這個對象:布爾現場deserialisation之後總是返回false(Newtonsoft)
public class User
{
public string Username;
public byte[] HashedPassword;
public byte[] Salt;
private bool admin;
public bool Admin
{
get { return admin; }
}
public User(string UsernameArg, byte[] PasswordArg, byte[] SaltArg, bool AdminArg = false)
{
Username = UsernameArg;
HashedPassword = PasswordArg;
Salt = SaltArg;
admin = AdminArg;
}
public override string ToString()
{
return Username;
}
}
這是我的JSON字符串:
{"Users":[{"Username":"admin","HashedPassword":"password","Salt":"salt","Admin":true}]}
(我編輯的哈希密碼和可讀性鹽)
所以每當我讀到這使用JsonConvert.DeserializeObject<UserDatabaseClass>(jsonRead)
管理員字段正在返回false。
難道這只是我誤解了這是在做什麼還是我做錯了?
你必須有一個公共的getter *和* setter,用於所有你想往返的房產。只需要一個公共getter,他們就會被序列化,但是如果沒有setter,他們就不能在反序列化過程中被寫回對象實例。 –