从输出格式化程序替换OutputFormatterCanWriteContext中的Object值

时间:2019-01-10 15:32:19

标签: c# asp.net-web-api asp.net-core asp.net-core-2.1

我想继承OutputFormatterCanWriteContext的子类,以便可以添加一种方法来设置其Object属性,该属性具有受保护的设置器。

这很容易。如何配置ASP.NET Core以使用我的子类而不是其子类?

我要这样做是因为我有一个输出格式化程序,该格式化程序必须在将响应发送到客户端之前,用不同的值替换上下文的Object

我当前不涉及子分类的解决方案是通过反射设置Object

public override Task WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding)
{
    var prop = context.GetType().GetProperty(
        nameof(OutputFormatterWriteContext.Object),
        BindingFlags.Instance | BindingFlags.Public);
    ...
    prop.SetValue(context, someOtherValue);            
}

0 个答案:

没有答案