Попытка десериализации класса с помощью Font и получение: Десериализация типов без конструктора без параметров. ⇐ C#

Место общения программистов C#
Anonymous
Попытка десериализации класса с помощью Font и получение: Десериализация типов без конструктора без параметров.

Сообщение Anonymous »

Используя System.Text.Json, у меня есть класс с некоторыми свойствами, включая свойства System.Drawing.Font.
С сериализацией нет проблем, но я не могу его десериализовать.
Я получаю сообщение об ошибке. Десериализация типов без конструктора без параметров.
Вот упрощенный пример:
Когда я нажимаю кнопку 1, я сериализую объект, но я получаю сообщение об ошибке, когда нажимаю кнопку 2 для десериализации.

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

using System.Text.Json;
namespace WinFormsApp1;

public partial class Form1 : Form
{
private CasaSettings _casaSettings;
private string _stringJson;

public Form1()
{
InitializeComponent();
_casaSettings = new CasaSettings();
}

private void button1_Click(object sender, EventArgs e)
{
_casaSettings.DefaultFont = textBox1.Font;
_stringJson = JsonSerializer.Serialize(_casaSettings, _casaSettings.GetType());
}

private void button2_Click(object sender, EventArgs e)
{
CasaSettings convertedSetting = (CasaSettings)JsonSerializer.Deserialize(_stringJson, typeof(CasaSettings));
}
}

public class CasaSettings
{
public CasaSettings() { }

public int AlertIntervalRefresh { get; set; } = 60000;

public Font DefaultFont { get; set; } = new Font("Tahoma", (float)8.25, GraphicsUnit.Point);
}
Мне нужно продолжать использовать System.Text.Json.
Я думаю, мне нужно использовать конвертер, но не могу заставить его работать.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/787 ... es-without

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