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

如何用Roslyn分析解决方案并向其他项目干系人提供元数据

项目目标

本工具旨在为项目干系人提供元数据。项目包含各类权限相关接口,需要向没有Visual Studio、不会查看代码的干系人展示接口实现细节。通过抓取应用中所有指定接口的实现,并以自定义格式呈现,帮助干系人和业务分析师理解已实现的功能,辅助他们通过C#代码了解应用逻辑,缩小对复杂应用的预期与实际行为之间的认知差距。

使用方式

该控制台应用通过命令行运行,示例如下:

RoslynScraper -s "c:\users\anyone\reps\MySolution.sln" -i "IPermissions, IWhatever, ISomethingElse"

参数说明:

  • -s:指定要分析的Visual Studio解决方案文件(.sln)的路径
  • -i:指定需要检查的接口名称,多个接口用逗号分隔

input.cs

namespace RoslynScraper.Models;

public class Input
{
    /// <summary>
    /// 要检查的VS .sln文件路径
    /// </summary>
    public string SolutionFile { get; set; } = default!;

    public string OutputFile { get; set; } = default!;

    /// <summary>
    /// 需要检查哪些接口?
    /// </summary>
    public IEnumerable<string> InspectInterfaces { get; set; } = Enumerable.Empty<string>();    
}

output.cs

namespace RoslynScraper.Models;

public class Output
{
    public IEnumerable<Item> Items { get; set; } = Enumerable.Empty<Item>();

    public class Item
    {
        public string InterfaceName { get; set; } = string.Empty;
        /// <summary>
        /// 类所属的命名空间
        /// </summary>
        public string Namespace { get; set; } = default!;
        /// <summary>
        /// 实现接口的类名称
        /// </summary>
        public string ClassName { get; set; } = default!;
        /// <summary>
        /// 成员名称(方法、属性、事件等)
        /// </summary>
        public string MemberName { get; set; } = default!;
        /// <summary>
        /// C#方法或属性的代码体
        /// </summary>
        public string Body { get; set; } = default!;
        /// <summary>
        /// 代码体在源文件中的具体位置
        /// </summary>
        public SourceLocation? Location { get; set; }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:06:09