Мне не удалось найти ответ на это где угодно, но когда я пытаюсь сериализовать структуру или класс со статическими или константными переменными-членами, они по умолчанию не сериализуются. Если я попытаюсь принудительно выполнить сериализацию, установив MemberSerialization.OptIn
, я получаю сообщение об ошибке.
ех.
[JsonObject(MemberSerialization.OptIn)]
public class Test
{
[JsonProperty]
public int x = 1;
[JsonProperty]
public static int y = 2;
}
Если я попытаюсь сериализовать этот класс с помощью:
Test t = new Test();
string s = JsonConvert.SerializeObject( t );
Я получаю сообщение об ошибке Error getting value from 'y' on 'Test'
. То же самое происходит, если y const.
Моя теория заключается в том, что значения static и const хранятся где-то особенным в памяти, и по какой-то причине сериализатор Json умирает, пытаясь получить к ним доступ. Это все-таки догадка, и я ничего не вижу в С# Reference for Static о любой помощи. Я относительно новичок в С# - и это действительно вопрос любопытства больше, чем что-либо в этом пункте.