【发布时间】:2014-12-05 12:04:19
【问题描述】:
我正在做一个过程,我的服务器使用 JSON.Net 生成一个包含 25000 条记录和 85MB 大小的文件,然后该文件由客户端导入。
客户端下载文件并使用 JSON.Net 进行反序列化。
我的问题是,在不同的机器上,反序列化命令正在给出:
System.OutOfMemoryException
注意:我尝试手动使用GC没有成功。
代码生成错误:
var listAddress = JsonConvert.DeserializeObject<List<address>>(File.ReadAllText(@"c:\Temp\test.json");
代码生成 JSON 文件:
using (StreamWriter file = File.CreateText("C:\\test.json"))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(file, listAddress);
}
我的班级地址
public class Endereco
{
public int Codigo { get; set; }
public string CGCCPF { get; set; }
public char? TipoPessoa { get; set; }
public string UF { get; set; }
public string SiglaDoRG { get; set; }
public string MaeFantasica { get; set; }
public string DescEndereco { get; set; }
public string Complemento { get; set; }
public string Bairro { get; set; }
public string CEP { get; set; }
public string Pai { get; set; }
public string Cidade { get; set; }
public string Telefone { get; set; }
public string Fax { get; set; }
public string Email { get; set; }
public string IEouRG { get; set; }
public string OrgaoEmissorRG { get; set; }
public DateTime? DataNascimento { get; set; }
public CampoObservacao Observacao { get; set; }
public DateTime? DataRegistro { get; set; }
public DateTime? DataUltAlteracao { get; set; }
public int? CodigoFuncionario { get; set; }
public string Ramal { get; set; }
public DateTime? DataDeEmissaoRG { get; set; }
public string Alfa1 { get; set; }
public string Alfa2 { get; set; }
public double? Num1 { get; set; }
public double? Num2 { get; set; }
public string PontoReferencia { get; set; }
public string Celular { get; set; }
public string EnderecoWeb { get; set; }
public string Conta { get; set; }
public string Rasocial { get; set; }
public int? NcCodigo { get; set; }
public int? NcCodigoC { get; set; }
public string CFOP { get; set; }
public string Numero { get; set; }
public int? CodigoMunicipio { get; set; }
public int? CodigoPais { get; set; }
public string Suframa { get; set; }
public string NumeroNit { get; set; }
public string InscricaoMunicipal { get; set; }
public string IE { get; set; }
public bool Ativo
{
get { return !Observacao["Status"].Equals("I"); }
set { Observacao["Status"] = !value ? "I" : String.Empty; }
}
public Endereco()
{
Observacao = new CampoObservacao();
}
public char? TipoDeMercado
{
get { return !String.IsNullOrEmpty(Observacao["Tipo de Mercado"]) ? (char?)Observacao["Tipo de Mercado"][0] : null; }
set { Observacao["Tipo de Mercado"] = value.HasValue ? value.ToString() : String.Empty; }
}
public char? EstadoCivil
{
get { return !String.IsNullOrEmpty(Observacao["EstadoCivil"]) ? (char?)Observacao["EstadoCivil"][0] : null; }
set { Observacao["EstadoCivil"] = value.HasValue ? value.ToString() : String.Empty; }
}
public Cliente Cliente { get; set; }
public Funcionario Funcionario { get; set; }
public Filial Filial { get; set; }
}
【问题讨论】:
标签: c# asp.net-mvc json json.net