为编码智能体提供 C# 编译器级精确的“查找引用”功能

为编码智能体提供 C# 编译器级精确的“查找引用”功能。任务:该工作流使用 graphify-csharp(一个无头的 Roslyn/MSBuild 索引器)将 C# 解决方案转换为包含精确调用者、引用和继承关系的确定性语义图。编码智能体查询此图,通过应用命名约定对返回的证据进行分类,以识别仅用于测试的方法或死代码候选项。由于该工具提供的是静态分析而非运行时证明,人类审查员必须在删除或重构代码前验证这些发现。;工具:custom-built or unnamed agent。人工角色:原始帖子没有说明人如何参与。;局限:前提条件包括 .NET 10 或 11 SDK 以及 C# 解决方案/项目结构。该工具提供编译器证据,而非运行时可达性证明;反射、依赖注入和动态调用可能创建静态分析不可见的关系。删除候选项必须经过人工审查,以检查入口点和外部消费者。集成需要配置智能体技能或指令以正确解释 JSON 输出。。

工具

custom-built or unnamed agent

Agent Work Atlas 发布日期:

概述

为编码智能体提供 C# 编译器级精确的“查找引用”功能。

工作流程

该工作流使用 graphify-csharp(一个无头的 Roslyn/MSBuild 索引器)将 C# 解决方案转换为包含精确调用者、引用和继承关系的确定性语义图。编码智能体查询此图,通过应用命名约定对返回的证据进行分类,以识别仅用于测试的方法或死代码候选项。由于该工具提供的是静态分析而非运行时证明,人类审查员必须在删除或重构代码前验证这些发现。

原文报告的结果

来源描述了工具的功能和预期工作流,但未报告实际业务部署中的具体测量结果、成功率或失败案例。它强调与文本搜索相比,智能体可以可靠地区分重载和项目边界,但实际影响指标未知。一个可衡量的验收检查是验证智能体在示例项目中正确识别特定重载方法的所有调用者且无假阳性。

人工角色

原始帖子没有说明人如何参与。

局限

前提条件包括 .NET 10 或 11 SDK 以及 C# 解决方案/项目结构。该工具提供编译器证据,而非运行时可达性证明;反射、依赖注入和动态调用可能创建静态分析不可见的关系。删除候选项必须经过人工审查,以检查入口点和外部消费者。集成需要配置智能体技能或指令以正确解释 JSON 输出。

试一试

我需要分析一个 C# 代码库以查找仅被测试使用的方法。首先,使用 dotnet tool install --global Graphify.CSharp --framework net10.0 全局安装 graphify-csharp。导航到我的仓库根目录 [replaceable: 仓库路径] 并运行 graphify-csharp export --input ./src/[replaceable: 解决方案名称].sln --root . --output ./graphify-out/csharp.json。然后,使用智能体查询此 JSON 文件。询问智能体:“哪些方法在非测试项目中没有传入的静态引用?”智能体应过滤 'project' 字段不包含 'Tests' 的节点,并检查传入的 'calls' 边。输出候选方法列表,包含文件路径和行号。在删除任何代码之前,我将手动审查每个候选项,以确保不存在反射或 DI 用法。首先在一个小的文件子集上进行试运行,以验证智能体的查询逻辑是否正确。

原始来源

来源报告未经独立核验。发布日期为本站案例发布日期,并非原始文章日期。

更多同类案例 · 编程与开发