ASP.NET - HttpResponse.WriteAsync() 与 HttpResponse.Body.WriteAsync() 与 HttpResponse.BodyWriter.WriteAsync()

问题描述 投票:0回答:1

在 ASP.NET 中,有三种选项(据我所知)可以直接写入响应缓冲区。

给出以下数据:

var str = "Hello World";
var bytes = Encoding.UTF8.GetBytes(str);

我们可以使用以下方法写入响应缓冲区:

// method 1
await HttpResponse.WriteAsync(str);
// method 2
await HttpResponse.Body.WriteAsync(bytes);
// method 3
await HttpResponse.BodyWriter.WriteAsync(bytes);

它们之间有什么区别(如果有的话)?

c# asp.net httpresponse streamwriter httpcontext
1个回答
0
投票

嗯,

HttpResponse.WriteAsync
 实际上是扩展方法当前实现使用下面的正文编写器。所以相当于使用
BodyWriter.WriteAsync
.

所以我们只剩下

Body.Write
Body
是一个流,与
BodyWriter
不同,后者是一个管道。正如文档所述

建议使用管道而不是流。对于一些简单的操作,流可以更容易使用,但是管道具有性能优势,在大多数场景下更容易使用。

由于流首先出现,因此仍然受支持。

所以,你的选择。

© www.soinside.com 2019 - 2024. All rights reserved.