当前位置: 首页 > news >正文

ASP.NET Core 中读取 UserAgent 的正确姿势

今天读了 Andrew Lock 的2篇博文学到的招式,记录一下。

两篇博文的链接:

  • Using default interface methods for performance gains in IHeaderDictionary
  • A brief look at StringValues

之前的读取 UserAgent 的代码:

var userAgent = context.HttpContext.Request.Headers[HeaderNames.UserAgent].ToString();

重构后的性能更好的代码:

string userAgent = context.HttpContext.Request.Headers.UserAgent;

1)用属性读取取代 Indexer 读取,来自这个 PR 借助 default interface 的巧妙实现
2)去掉显式 ToString,StringValues 中只有一个值时,可以避免 ToString 的开销,对于 UserAgent,通常只有一个值

http://www.jsqmd.com/news/10293/

相关文章:

  • Git学习记录(二):代码patch
  • 2025年10月化妆品代工厂最新推荐排行榜:聚焦 OEM/ODM/ 网红爆款需求,精选优质企业助品牌高效合作
  • Exchange安全漏洞分析:ProxyOracle攻击链详解
  • 将word档案转为kindle可识别的azw3材料的方法
  • 牛客 周赛111 20251008
  • 晶台光耦在手机PD快充上的应用 - 实践
  • bat批处理脚本文件-获取当前时间的几种方法
  • 二分图最大权完美匹配 KM算法
  • 2025.10.8模拟赛
  • RL | 速读 IJCAI 2025 的强化学习论文
  • Superhumanism
  • IDM弹窗解决 - -一叶知秋
  • PHP+MySQL开发语言 在线下单订水送水小脚本源码及搭建指南
  • Sliding Window Algorithm
  • 国庆模拟赛总结
  • 深入解析:video-audio-extractor:视频转换为音频
  • 10.8 CSP-JS 模拟赛 T4. discover
  • 20251008 模拟测 总结
  • 网课二
  • 详细介绍:运行shell脚本时报错/bin/bash^M: 解释器错误: 没有那个文件或目录
  • VuePress v2是否支持Vue2的配置?
  • DeCLIP
  • 19_win11_wsl_linux_配置jdk_mvn
  • 在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名CTF资源库需求洞察
  • 计蒜客 A1108 百度地图的实时路况
  • 学生管理系统面向对象问题分析
  • dns 委派
  • 几个重要的偏微分方程(二)
  • 如何测试台式机电源
  • 「SCOI2015」小凸解密码题解