JsonSerializer.Serialize возвращает пустой объект

Я пытаюсь сохранить объект созданного мной класса в файл, но JsonSerializer.Serialize возвращается {}.

class User : DalObject<User>
{
    private readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    private string email;
    private string nickname;
    private string password;
    private bool LoggedIn;

    public User(string email, string password, string nickname, bool LoggedIn)
    {
        this.email = email;
        this.password = password;
        this.nickname = nickname;
        this.LoggedIn = LoggedIn;
    }

    public string ToJson()
    {
        var options = new JsonSerializerOptions
        {
            WriteIndented = true
        };
        log.Debug("User " + this.email + " saved");
        return JsonSerializer.Serialize(this, options);
    }

1 ответ

Решение

JsonSerializer.Serialize упорядочивает только общие свойства. У вас есть только (частные) поля.

Поведение сериализации

  • По умолчанию все общедоступные свойства сериализуются. Вы можете указать свойства для исключения.

  • ...

  • В настоящее время поля исключены.

Из документов Microsoft

См. Также этот запрос функции

Работать вокруг

Вы можете использовать Json.NET и добавить[JsonProperty] в частные поля.

Метод в Json.NET: JsonConvert.SerializeObject

Другие вопросы по тегам