相关疑难解决方法(0)

为什么JSON .Net不能序列化静态或const成员变量?

我无法在任何地方找到答案,但是当我尝试使用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#比较陌生 - 在这一点上,这真的是一个好奇的问题.

.net c# json.net

14
推荐指数
3
解决办法
1万
查看次数

标签 统计

.net ×1

c# ×1

json.net ×1