C# JSON Serialization объект, который наследует от ObservableCollection - Как включить свойства детского класса?C#

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

Сообщение Anonymous »

Я использую json для сохранения некоторых данных: < /p>
public ViewModel
{
public TestClass testClass { get; set; }

public ViewModel()
{
testClass = new TestClass();
}

public void SaveFile()
{
SaveAs(testClass);
}

private void SaveAs(object data)
{
string jsonString = JsonSerializer.Serialize(data);

SaveFileDialog dialog = new SaveFileDialog();
if (dialog.ShowDialog() == true)
{
File.WriteAllText(dialog.FileName,jsonString);
}
}
}
< /code>
Когда я делаю простой класс, как это: < /p>
public class TestClass
{
public string Name { get; set; }
public double Size { get; set; }
}
< /code>
Сериализация работает как предполагалось, и дает мне этот файл: < /p>
{
"Name": null,
"Size": 0
}
< /code>
Когда я хочу, чтобы мой класс наследовал от ObservableCollection, как это: < /p>
public class TestClass : ObservableCollection
{
public TestClass()
{
Items.Add(new TestObject());
}

public string Name { get; set; }
public double Size { get; set; }
}

public class TestObject
{
public string ObjectName { get; set; }
public double ObjectSize { get; set; }
}
< /code>
Сериализация только дает мне объекты ObservableCollection: < /p>
[
{
"ObjectName": null,
"ObjectSize": 0
}
]
< /code>
Я хочу, чтобы свойства имени и размера класса TestClass также были сериализованы. Как я могу сделать это?[
{
"Name": null,
"Size": 0
{
"ObjectName": null,
"ObjectSize": 0
}
}
]


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

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

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

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

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

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

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