我想继承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);
}