none
如何在代码只能给获取当前的名字空间, 类 和方法名称 ? RRS feed

  • 问题

  • 我经常在程序中写Log. 其中需要写入 当前的名字空间名称, 类名称 和 方法名称.

    过去我都是在编码的时候手动把硬编码的字符串写在代码里的. 这样做非常麻烦.

    请问有没有好的方法, 可以直接获得以上这些信息呀?  这样我所有的log调用都只需要拷贝相同的代码就可以获取以上信息了. 节省人工和效率呀.

    谢谢!!

    2010年11月15日 2:55

答案

  • Hi 

    Thanks for your post!


    当前命名空间:this.GetType().NameSpace

    当前Class:this.GetType();

    当前执行的Method:

    StackFrame sf = new StackFrame();

    sf.GetMethod().Name


    Please feel free to let me know if you have any further issues, thanks!



    Happy Coding:)
    Wayne Ye - Senior Software Development Engineer
    Personal Website:   http://WayneYe.com


    2010年11月15日 3:05
  • 我经常在程序中写Log. 其中需要写入 当前的名字空间名称, 类名称 和 方法名称.

    过去我都是在编码的时候手动把硬编码的字符串写在代码里的. 这样做非常麻烦.

    请问有没有好的方法, 可以直接获得以上这些信息呀?  这样我所有的log调用都只需要拷贝相同的代码就可以获取以上信息了. 节省人工和效率呀.

    谢谢!!


    dear
    使用 StackTrace 类 + StackFrame 类 + MethodBase 类,可以取得目前方法的的堆叠资讯。
    你可参考以下连结,是否符合你的需求
    http://www.dotblogs.com.tw/yc421206/archive/2010/10/25/18546.aspx
    http://www.dotblogs.com.tw/yc421206/archive/2010/10/23/18535.aspx

    秘訣無它,唯勤而已
    2010年11月15日 4:02

全部回复

  • Hi 

    Thanks for your post!


    当前命名空间:this.GetType().NameSpace

    当前Class:this.GetType();

    当前执行的Method:

    StackFrame sf = new StackFrame();

    sf.GetMethod().Name


    Please feel free to let me know if you have any further issues, thanks!



    Happy Coding:)
    Wayne Ye - Senior Software Development Engineer
    Personal Website:   http://WayneYe.com


    2010年11月15日 3:05
  • 我经常在程序中写Log. 其中需要写入 当前的名字空间名称, 类名称 和 方法名称.

    过去我都是在编码的时候手动把硬编码的字符串写在代码里的. 这样做非常麻烦.

    请问有没有好的方法, 可以直接获得以上这些信息呀?  这样我所有的log调用都只需要拷贝相同的代码就可以获取以上信息了. 节省人工和效率呀.

    谢谢!!


    dear
    使用 StackTrace 类 + StackFrame 类 + MethodBase 类,可以取得目前方法的的堆叠资讯。
    你可参考以下连结,是否符合你的需求
    http://www.dotblogs.com.tw/yc421206/archive/2010/10/25/18546.aspx
    http://www.dotblogs.com.tw/yc421206/archive/2010/10/23/18535.aspx

    秘訣無它,唯勤而已
    2010年11月15日 4:02
  • System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString()

     

    2010年11月15日 11:46