Почему унаследованный класс не получает правильно сериализуется JSON?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему унаследованный класс не получает правильно сериализуется JSON?

Сообщение Anonymous »

Я хочу создать класс jsonerializable , от которого я могу унаследовать. Смотрите этот код: < /p>

Код: Выделить всё

using System;
using System.Text.Json;
using System.Text.Json.Serialization;

public interface IJson
{
string ToJson();
}

abstract public class JsonSerializable : IJson
{
public string ToJson()
{
return JsonSerializer.Serialize(this);
}
}

public class Cabinet :JsonSerializable {
[JsonPropertyName("name")]
public string Name { get; set; }
}
< /code>
Я использую его следующим образом: < /p>
public class Program
{
public static void Main()
{
var C = new Cabinet();
C.Name = "FOO";

IJson json_thing = C;

Console.WriteLine(JsonSerializer.Serialize(C));
Console.WriteLine(json_thing.ToJson());
}
}
< /code>
Однако результат: < /p>
{"name":"FOO"}
{}
Где я бы думал, что json_thing.tojson () также должен привести к {"name": "foo"} .
Почему сериализация JSON с этим дополнительным между классом не работает? Я хочу этот класс между ними, потому что код сериализации для большинства класса будет идентичным.

Подробнее здесь: https://stackoverflow.com/questions/796 ... -correctly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»