我用JSON创建了我自己的Custom Serialization方法。网方法如下:
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
var Obj = (xObject)value;
writer.WriteStartArray();
foreach(var TargetObject in Obj)
{
writer.WriteStartObject();
writer.WritePropertyName(TargetObject.Data.Key);
writer.WriteValue(TargetObject.Data.Value);
writer.WriteEndObject();
}
writer.WriteEndArray();
}
我得到一个OutOfMemoryException
异常在writer.WriteValue(TargetObject.Data.Value)
,说内存不足,任何想法,我可以保持我的自定义序列化,但避免这个问题?
注意,是的,你是对的,我要序列化的对象大于1GB。
我最后发现,原因是因为从。net溢出字符串类型的异常。所以,简单地说,它只是太大的数据对于字符串字段,没有解决方案,因为没有问题与json.net,我的解决方案是简化我的数据,或输出作为驱动器上的文件,而不是将其整个数据存储在内存中的字符串字段,只是不可能....
尝试使用流媒体和PushStreamContent按照这个博客
您可能不得不放弃JsonWriter,并使用未缓冲的流进行更多的手动序列化。