gpt4 book ai didi

c# - 将 ArrayPool 对象提供给 JsonOutputFormatter 构造函数

转载 作者:可可西里 更新时间:2023-11-01 09:10:48 34 4
gpt4 key购买 nike

从 .net RC2 升级到 RTM 后,我发现我需要为派生自 ArrayPool 的 JsonOutputFormatter 的构造函数提供一个参数。我如何获得这个对象?我正在手动更新 JsonOutputFormatter,因为我需要配置 ReferenceLoopHandling。

我能找到的其他相关信息是: https://github.com/aspnet/Mvc/issues/4562

    public IServiceProvider ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMemoryCache();
services.AddSession();
services.AddMvc();
var formatterSettings = JsonSerializerSettingsProvider.CreateSerializerSettings();
formatterSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
JsonOutputFormatter formatter = new JsonOutputFormatter(formatterSettings, ???);

services.Configure<MvcOptions>(options =>
{
options.OutputFormatters.RemoveType<JsonOutputFormatter>();
options.OutputFormatters.Insert(0, formatter);
});

//etc...
}

最佳答案

var formatter = new JsonOutputFormatter(formatterSettings, ArrayPool<Char>.Shared);

Source

在评论中:

The JsonOutputFormatter now needs a ArrayPool when creating it, you can pass in ArrayPool.Shared.

我还注意到 ArrayPool 上有一个 .Create() 方法。

var formatter = new JsonOutputFormatter(formatterSettings, ArrayPool<Char>.Create());

关于c# - 将 ArrayPool 对象提供给 JsonOutputFormatter 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38084437/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com