c# - 有没有办法以编程方式获取任意 MemberInfo 的源文件和行号?

标签 c# .net reflection clr symbols

我正在编写一个代码分析工具,它使用反射来验证特定的代码库。当我遇到感兴趣的类型或成员时,我想加载符号并提取定义该成员或类型的源文件和行号。这可能吗?如果是这样,怎么办?

class SourceInfo
{
    public static SourceInfo GetFrom(MemberInfo member)
    {
        // What do I do here??
        throw new NotImplementedException();
    }

    public static SourceInfo GetFrom(Type member)
    {
        // What do I do here??
        throw new NotImplementedException();
    }

    public string SourceFilePath { get; private set; }
    public int LineNumber { get; private set; }
}

最佳答案

可用的符号 API 在此 blog article 中列出。 。我认为 MDbg 包装器是托管代码的最佳选择。我只尝试了 DIA sdk,并没有感到兴奋。

关于c# - 有没有办法以编程方式获取任意 MemberInfo 的源文件和行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2142288/

相关文章:

c# - WinRT - TCP 客户端?

c# - WinForms 不同的 DPI 布局

c# - 是否可以通过反射调用 "Select"方法

c# - 在 asp.net 中的标签中显示 SQL 查询结果

c# - Facebook 和 Twitter/LinkedIn 之间的 OAuth token 差异

.net - 如何从 Windows 窗体应用程序打开记事本并在其中放置一些文本?

c# - 如果反射效率低下,什么时候最合适?

c# - 获取 MemberRef 元数据 token 引用的字段

c# - 无法将 ASP.NET Web API 发布到 Azure 应用服务

c# - 如何指定属性应生成 TEXT 列而不是 nvarchar(4000)