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您的链接已失效。也许你可以总结一下他们的内容?