Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法以编程方式获取任意MemberInfo的源文件和行号?_C#_.net_Reflection_Clr_Symbols - Fatal编程技术网

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

C# 有没有办法以编程方式获取任意MemberInfo的源文件和行号?,c#,.net,reflection,clr,symbols,C#,.net,Reflection,Clr,Symbols,我正在编写一个代码分析工具,它使用反射来验证特定的代码库。当我遇到感兴趣的类型或成员时,我希望加载符号并提取定义该成员或类型的源文件和行号。这可能吗?如果是,怎么做 class SourceInfo { public static SourceInfo GetFrom(MemberInfo member) { // What do I do here?? throw new NotImplementedException(); }

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

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在此列表中列出。我认为MDbg包装器是托管代码的最佳选择。我只尝试了DIA sdk,并不激动。

codeproject文章提供了一些有关从PDB文件检索信息的信息。

Jason您的链接已失效。也许你可以总结一下他们的内容?