我有一個包含大約400個對象的列表,每次我嘗試序列化它時,都會遇到一個內存異常。Json.SerializeObject OutOfMemory異常
問題是,我正在監視服務器的內存,它永遠不會超過40%的使用率,所以我有點失落,這個錯誤。
try
{
str = JsonConvert.SerializeObject(list);
}
catch(Exception ex)
{
throw ex;
}
我重複檢查並且序列化的類沒有複雜的類型或引用到同一類型的其他對象。
,如果我嘗試做list.First()
namespace ilimitada.ServicioDistribucion.AnalisisDatos.Entidades
{
using ilimitada.Dominio.Pervasive.SCI.Core.Enumeradores;
using System;
using System.Runtime.CompilerServices;
public class CuentaCobrar
{
public CuentaCobrar()
{
this.Nit = string.Empty;
this.TipoNit = string.Empty;
this.RazonSocial = string.Empty;
this.PrimerNombre = string.Empty;
this.SegundoNombre = string.Empty;
this.PrimerApellido = string.Empty;
this.SegundoApellido = string.Empty;
this.Direccion = string.Empty;
this.CodigoCiudad = string.Empty;
this.Indicativo = string.Empty;
this.Telefono = string.Empty;
this.Celular = string.Empty;
this.Email = string.Empty;
this.CodigoMunicipio = string.Empty;
this.CodigoPais = string.Empty;
this.Plazo = 0;
this.CodigoActividadEconomica = string.Empty;
this.Naturaleza = string.Empty;
this.TieneRut = "No";
this.Activo = "No";
this.TipoTransaccion = Transaccion.Ninguna;
this.Documento = string.Empty;
this.OrdenFacturacion = string.Empty;
this.DocumentoReferencia = string.Empty;
this.SaldoDocumento = 0.0;
this.FechaDocumento = DateTime.Now;
this.FechaVencimiento = DateTime.Now;
this.Compania = string.Empty;
}
public string Activo { get; set; }
public string Celular { get; set; }
public string CodigoActividadEconomica { get; set; }
public string CodigoCiudad { get; set; }
public string CodigoMunicipio { get; set; }
public string CodigoPais { get; set; }
public string Direccion { get; set; }
public string Documento { get; set; }
public string DocumentoReferencia { get; set; }
public string Email { get; set; }
public DateTime FechaDocumento { get; set; }
public DateTime FechaVencimiento { get; set; }
public string Indicativo { get; set; }
public string Naturaleza { get; set; }
public string Nit { get; set; }
public string OrdenFacturacion { get; set; }
public int Plazo { get; set; }
public string PrimerApellido { get; set; }
public string PrimerNombre { get; set; }
public string RazonSocial { get; set; }
public double SaldoDocumento { get; set; }
public string SegundoApellido { get; set; }
public string SegundoNombre { get; set; }
public string Telefono { get; set; }
public string TieneRut { get; set; }
public string TipoNit { get; set; }
public Transaccion TipoTransaccion { get; set; }
public string Compania { get; set; }
}
}
這是枚舉
public enum Transaccion
{
Ninguna = 0,
OtrasCxP = 9,
Compra = 10,
NDCompras = 11,
NCCompras = 12,
NDOtrasCxP = 13,
NCOtrasCxP = 14,
TransladosEntreBodegas = 15,
OtrasEntradas = 16,
OtrasSalidas = 17,
EntradasMercanciaConsignacion = 18,
SalidadasMercanciaConsignacion = 19,
ConsumosDonacion = 20,
AnulacionConsumosDonacion = 21,
Venta = 30,
VentasMostrador = 31,
NCVentas = 33,
NDVentas = 34,
NDChequesDev = 40,
NCChequesDev = 41,
NDCargosVarios = 42,
NCAbonosVarios = 43,
AnticipoCxC = 44,
NDInteresMora = 45,
NCBanco = 70,
NDBanco = 71,
Cheques = 72,
Consignaciones = 73,
TrasladosBancarios = 74,
AnticipoCxP = 75,
ChequesAnulados = 76,
ReciboCaja = 90,
AnulacionReciboCaja = 91,
CostosProduccion = 95
}
如果你只序列化該列表中的一些項目會發生什麼呢?它產生了什麼? –
你必須序列化爲一個字符串嗎?根據您對數據的處理方式,您可能可以直接將JSON流式傳輸到目標。 – user5090812
將試圖序列化與一個項目列表 –