代码之家  ›  专栏  ›  技术社区  ›  Robert Davis

是否可以通过C#中的反射检索文件信息?

  •  6
  • Robert Davis  · 技术社区  · 15 年前

    假设您在C#中有一个MethodInfo或MemberInfo的任何其他子类。是否可以检索它在其中声明的文件名以及声明开始的行号?此信息必须存在于调试模式元数据中的某个位置,因为创建StackTrace实例将提供该信息。我应该查看系统诊断而不是系统反射吗?

    2 回复  |  直到 15 年前
        2
  •  1
  •   jjacka    15 年前

    blog

    类似的方法可能会奏效:

    using System;
    using System.Diagnostics;
    
    class Foo
    {
    static void Main()
    {
        SmallFunc();
    }
    
    static void SmallFunc()
    {
        PrintStack();
    }
    static void PrintStack()
    {
        StackTrace st = new StackTrace(true); // true means get line numbers.
        foreach(StackFrame f in st.GetFrames()) {
            Console.Write(f);
        }
    }
    }