如何将【ASP.NET Core】应用与 CancellationToken 对象进行有效绑定?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1499个文字,预计阅读时间需要6分钟。
负责管理HTTP请求的上下文对象HttpContext,具有一个名为RequestAborted的属性。该属性类型为CancellationToken,用于表示客户端请求是否已取消。如果属性值为true,则表示请求已取消。
负责管理 HTTP 请求上下文的 HttpContext 对象有一个名为 RequestAborted 的属性。据其名思其义,就是可用来表示客户端请求是否已取消。
果然,它的类型是 CancellationToken,这家伙是结构类型,为啥强调是结构呢——因为是值类型啊。在访问 HTTP 的整个上下文传递过程,直接赋值会复制多个实例。所以,类库内部在传递此属性值时会用 object 类型的变量来引用它的值,嗯,对的,就是“装箱”。以引用类型的方式操作它,可以避免对象的复制而造成数据不统一。
具体可以看看 CancellationTokenModelBinder 类的源代码(命名空间:Microsoft.AspNetCore.Mvc.ModelBinding.Binders)。
本文共计1499个文字,预计阅读时间需要6分钟。
负责管理HTTP请求的上下文对象HttpContext,具有一个名为RequestAborted的属性。该属性类型为CancellationToken,用于表示客户端请求是否已取消。如果属性值为true,则表示请求已取消。
负责管理 HTTP 请求上下文的 HttpContext 对象有一个名为 RequestAborted 的属性。据其名思其义,就是可用来表示客户端请求是否已取消。
果然,它的类型是 CancellationToken,这家伙是结构类型,为啥强调是结构呢——因为是值类型啊。在访问 HTTP 的整个上下文传递过程,直接赋值会复制多个实例。所以,类库内部在传递此属性值时会用 object 类型的变量来引用它的值,嗯,对的,就是“装箱”。以引用类型的方式操作它,可以避免对象的复制而造成数据不统一。
具体可以看看 CancellationTokenModelBinder 类的源代码(命名空间:Microsoft.AspNetCore.Mvc.ModelBinding.Binders)。

