我无法在任何地方找到答案,但是当我尝试使用static或const成员变量序列化结构或类时,默认情况下它们不会序列化.如果我尝试通过设置强制序列化MemberSerialization.OptIn,我会收到错误.
恩.
[JsonObject(MemberSerialization.OptIn)]
public class Test
{
[JsonProperty]
public int x = 1;
[JsonProperty]
public static int y = 2;
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用以下命令序列化此类:
Test t = new Test();
string s = JsonConvert.SerializeObject( t );
Run Code Online (Sandbox Code Playgroud)
我收到了错误Error getting value from 'y' on 'Test'.如果y是const,则会发生同样的情况.
我的理论是静态和const值存储在特殊的内存中,并且由于某种原因,Json序列化器试图访问它们.这完全是一种预感,我在C#Reference for Static中看不到任何帮助.我对C#比较陌生 - 在这一点上,这真的是一个好奇的问题.