【发布时间】:2016-04-24 06:07:09
【问题描述】:
我正在构建一个 API,客户端可以在其中向我发送数据块,然后我将其保存在某个地方以供以后检索。我不在乎内容类型是什么。我只想每次都获取原始数据,无论他们将 Content-Type 设置为什么。我知道这可以通过访问 Request 对象在旧版本的 ASPNET 中实现,但是这在 ASPNET 5 中似乎是不可能的,我也不想这样做,因为它会使单元测试变得不可能(请求不是依赖注入)。
我已经看到一些关于 IInputFormatter 和 IOutputFormatter 接口的提及,但它们似乎附加到特定的 Content-Type。我想我正在寻找更像 [FromBody] 属性的东西,但这会给我原始输出。类似 [RawBody] 的东西。我做了很多搜索,似乎找不到任何简单的解决方案。
【问题讨论】:
-
如果您可以使用 Moq per this answer 对其进行单元测试,也许您可以使用 Request 对象。
-
我认为这不适用于 ASPNET 5,因为控制器不继承任何东西(只是对象)。因此,没有 ControllerContext 或任何东西。我什至不确定是否可以从 ASPNET 5 中的控制器访问请求。我认为类似于 [FromBody] 的属性可能是这样做的唯一方法。
标签: asp.net-mvc asp.net-web-api