【发布时间】:2015-06-12 19:11:01
【问题描述】:
我想使用 TypeNameHandling.Objects 序列化所有带有 $type 引用的合同。然而,当使用这个标志时,所有字节数组(byte[])都使用 $value+$type 进行序列化。我仍然想要 Base64 编码但没有 $type。例如,对于以下合同:
class MyClass
{
public byte[] MyBinaryProperty {get;set;}
}
我明白了:
{
"$type": "MyLib.MyClass, MyAssembly",
"MyBinaryProperty": {
"$type": "System.Byte[], mscorlib",
"$value": "VGVzdGluZw=="
}
}
我想要:
{
"$type": "MyLib.MyClass, MyAssembly",
"MyBinaryProperty": "VGVzdGluZw=="
}
是否可以通过 JSON.NET 使用 $type 序列化所有对象,不包括字节数组?我可以在不向合约添加任何属性的情况下执行此操作吗(即我只想更改序列化程序设置)。
【问题讨论】:
-
@Hexxagonal:这不是 OP 的要求
-
也许
json想让你知道它是在mscorlib中定义的byte[]。不确定 -
@Hexxagonal:这不是那个问题的重复。
标签: c# json serialization json.net