自定义序列化中的OutOfMemoryException



我用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,并使用未缓冲的流进行更多的手动序列化。

相关内容

  • 没有找到相关文章

最新更新