用途:从已有的 .NET 程序集理解代码真实行为。反编译器在本地针对已获取的程序集运行,IL 与注释视图可揭示 PDB 映射源码中缺失的事实。包与 PDB 获取可使用网络;加 --offline 禁止网络访问。PDB 映射源码应使用 sourcelink 技能并遵循其校验和与来源边界。
基本用法:dnx dotnet-inspect -y -- <command>。选定的类型或精确成员支持显式 -S Source,优先已验证的作者源码,不可用时按共享回退策略并保留提供方与回退上下文。可选 PDB Source(仅 PDB 选定提供方)或 Decompiled Source(仅本地重建的 C#)。示例见资料中的 type/member 命令与 -S "Decompiled Source,Annotated Source,IL" --offline 全离线证据集。
主要视图:Decompiled Source 为降级后的 C#;Annotated Source 为带隐藏事实注释并交错 IL 的 C#;IL 为原始 IL,保真度最高。关注确切操作码、偏移、分支、令牌或调用时用后两者。默认写原生源码,加 --markdown 获得文档框架。
Body Shapes 搜索:查询“哪些公共 API 方法包含某段 C# 语法”,Kind 取稳定 ID(如 ObjectCreationExpression、TryStatement),非 IR 类名或文本模式。可用 explain vocabularies/csharp.body-kinds 发现 ID。结果给出可回环的限定成员选择器、MethodDef 令牌、渲染 C# 中的一基起止范围与精确选中文本,并非 IL 偏移或原始文件坐标。低于 Full 保真度的 body 会被跳过并报告。库范围可重复 --where 组合 Performance Triage 字段;未收窄时对大库可能昂贵。
可读性与风格:--readable-names 替换 V_0 之类编译器式局部名;工具自有 .dotnet-inspectconfig 或 --taste 选择配置拼写。显式局部类型为默认,可按 csharp_style_var_* 选项启用 var;对象创建默认目标类型;长常量默认大写 L。
注释聚焦:默认折叠为尾部 // 注释,--focus 将匹配事实提升为 ^^^^ 下划线,只提升不过滤。
保真度:诚实降级,无忠实 C# 拼写时渲染为可见注释并降低等级(Full -> Partial -> StructuredOnly -> IlOnly -> Failed),伴随稳定的 DEC#### 诊断。可用 Fidelity Causes 查看原因。
IL 偏移定位:library coordinate 0x06000001+0x5 --library Foo.dll 组合默认源码位置、成员、指令、异常、调用点与返回地址段;分配、安全、成本为可选项。也支持 --file coordinates.txt,最多 1024 条有效记录。调用边请见 relationships 技能。
限制:还原/构建需先行以读取已有资产;缺失事实未提供。