2

最近发现当要转换的对象太大时,现有的序列化代码会失败。我知道如何增加 .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 的较大文件则失败。

4

0 回答 0