最近发现,当要转换的对象太大时,现有的序列化代码将失败。我知道如何增加.NET的JavascriptSerializer中的最大长度。但是我如何在JsonConvert.SerializeObject中做同样的事情?
对web.config设置的引用:
<jsonSerialization maxJsonLength="50000000"/>
说它仅受WCF尊重。我们没有使用WCF。这是一个简单的.NET库,需要对对象进行序列化。
相关代码为:
public static string Serialize(object value)
{
return JsonConvert.SerializeObject(value, SerializerSettings);
}
这是我创建设置的方式:
private static JsonSerializerSettings SerializerSettings
{
get
{
var settings = new JsonSerializerSettings();
settings.Converters.Add(new StringEnumConverter());
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
settings.NullValueHandling = NullValueHandling.Ignore;
return settings;
}
}
在JsonSerializerSettings中看不到我需要的属性。我的对象是多层的,但大多数为字符串类型。我转换上传的文件并将其存储为字符串。该文件的大小是我看到故障对象时要更改的元素。
不幸的是,我正在使用的库没有记录,所以我找不到确切的错误。但是该代码仅适用于较小的文件(<150KB),不适用于较大的文件(> 500KB)。