首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单次请求的InputFormatter

单次请求的InputFormatter
EN

Stack Overflow用户
提问于 2021-11-16 21:43:12
回答 1查看 26关注 0票数 0

有没有一种方法可以包含只针对单个端点运行的InputFormatter?我们有一个单独的端点,它需要一个自定义的InputFormatter。因此,我们并不想为了单个端点而全局添加输入格式化程序。我也不是真的想写一个对每个请求都能运行的繁琐的中间件。某种类型的ActionFilter将是完美的。

我已经看到了关于这个主题的现有SO答案,但它们都有需要过时的API的答案,例如,InputFormatters集合不再适用于操作中的上下文筛选器。

干杯

EN

回答 1

Stack Overflow用户

发布于 2021-11-17 10:23:16

下面是一个示例,它可以帮助您控制操作方法的输入格式化程序。

代码语言:javascript
复制
public class CSPContentTypeFormatterAttribute : ResultFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext context)
    {
        var options = context
            .HttpContext
            .RequestServices
            .GetService(serviceType: typeof(IOptions<MvcOptions>)) as IOptions<MvcOptions>;
        var mvcOptions = options.Value;
        mvcOptions.InputFormatters.OfType<SystemTextJsonInputFormatter>().First()
            .SupportedMediaTypes.Add(
                new Microsoft.Net.Http.Headers.MediaTypeHeaderValue("application/csp-report")
            );
        base.OnResultExecuting(context);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69996373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档