C# 调用actionContext.Request.Content.ReadAsStringAsync().Result是否会阻止自定义模型绑定器中的任何内容?

C# 调用actionContext.Request.Content.ReadAsStringAsync().Result是否会阻止自定义模型绑定器中的任何内容?,c#,asp.net-web-api,asp.net-web-api2,C#,Asp.net Web Api,Asp.net Web Api2,我正在使用WebAPI 2。我有一个自定义的模型绑定器,它从请求主体中的json创建模型 但我看不到(或谷歌)同步访问请求主体的方法。所以我所看到的人们通常是这样做的: actionContext.Request.Content.ReadAsStringAsync().Result 结果是,从调用方的角度强制调用是同步的。看起来确实像,但我在.NET Framework上使用常规WebAPI 2,我唯一的选择是: public bool BindModel(HttpActionContext

我正在使用WebAPI 2。我有一个自定义的模型绑定器,它从请求主体中的json创建模型

但我看不到(或谷歌)同步访问请求主体的方法。所以我所看到的人们通常是这样做的:

actionContext.Request.Content.ReadAsStringAsync().Result
结果是,从调用方的角度强制调用是同步的。看起来确实像,但我在.NET Framework上使用常规WebAPI 2,我唯一的选择是:

public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)

为什么它首先是异步的?我不是OSI模型方面的专家,但是当它到达模型绑定器时,我不应该拥有整个请求吗

我的猜测是,
ReadAsStringAsync
必须是异步的,这肯定是有原因的。我能想象的唯一原因是我们还没有收到整个请求。我猜一定有某种原因使得
ReadAsStringAsync
只能是异步的。我能想象的唯一原因是我们还没有收到全部请求。