【发布时间】:2021-01-26 23:25:27
【问题描述】:
我刚刚发现“RequestFeatures”是 ASP.net Core 中的一个东西,对我来说是个新闻.. 反正..
我创建了一个中间件,它需要更改响应正文和响应提供的标头。
我习惯于通过直接在作为 Invoke 方法的参数提供的 HttpContext 上下文对象上替代它来做到这一点。但是我在某处读到 context.Features 是由于优化而要走的路,而不是什么…… (这是真的吗?我知道测试功能比“模拟”整个 HttpContext 更容易,这在历史上是一件痛苦的事情。)所以我创建了自己的 HttpResponseFeature 实现并注册了它在我的 Invoke 方法中使用:
httpContext.Features.Set<IHttpResponseFeature>
(
//Registering my own HttpResponseFeature that takes an argument..
new MyHttpResponseFeature(httpResponseMessage)
);
但是,OnCompleted 或 OnStarting 方法永远不会运行。我添加了一些断点来验证这一点,但断点永远不会被命中。我错过了什么吗?
【问题讨论】:
-
你可以看到这个thread 可能有帮助。