我正在尝试设置一个细长的 ASP.NET Core 管道,并且正在使用 AddMvcCore 而不是 AddMvc 。我主要从 AddMvc 复制了这个,省略了与 Razor 相关的项目:

public void ConfigureServices(IServiceCollection services) =>
    services
        .AddMvcCore(
            options =>
            {
                // JsonOutputFormatter not found in OutputFormatters!
                var jsonOutputFormatter =
                    options.OutputFormatters.OfType<JsonOutputFormatter>.First();
                jsonOutputFormatter.SupportedMediaTypes.Add("application/ld+json");
            })
        .AddApiExplorer()
        .AddAuthorization()
        .AddFormatterMappings()
        .AddRazorViewEngine()
        .AddRazorPages()
        .AddCacheTagHelper()
        .AddDataAnnotations()
        .AddJsonFormatters()
        .AddCors();

我想向 JsonOutputFormatter 添加一个 MIME 类型,但在 OutputFormatters 集合中找不到它。也就是说,该应用程序仍然可以输出 JSON,所以我认为 JsonOutputFormatter 将在稍后添加。我怎样才能掌握 JsonOutputFormatter?

最佳答案

添加后,您可以在末尾使用 AddMvcOptions (位置很重要)来访问 JSON 格式化程序:

services
    .AddMvcCore()
    .AddJsonFormatters()
    .AddMvcOptions(options => { // do your work here });

关于asp.net - 使用 AddMvcCore 配置 JsonOutputFormatter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43395852/

10-10 06:46