You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过反射检测C#中带file修饰符的文件作用域类?

关于C# 11文件作用域类型的反射检测问题

C# 11引入了新的file类型修饰符,我尝试通过反射检测这类非公共类型,但没找到理想方法——Type类没有对应的Is…方法来判断类型是否为文件作用域。

目前我发现文件作用域类具备这些特征:

  • 非公共,即Type.IsNotPublic == true
  • 非嵌套,即所有Type.IsNested*相关属性均为false
  • 无特殊属性或基类等标识
  • 运行时类型名格式大致为$"<{filename}>{uniqueHexId}__{userTypeName}"

我据此写出正则表达式来识别:

[GeneratedRegex("^<[a-zA-Z_]+>[A-F0-9]+__.*$")]
private static partial Regex FileScopeClassNameRegex()

我想确认是否遗漏了什么,或是当前Type模型确实缺乏检测该类作用域的方法?更明确地说:是否存在系统原生的方法检测C#中的文件作用域类?

我已在相关代码示例中做过测试。

内容的提问来源于stack exchange,提问作者Matt Stuvysant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 06:32:16