错误处理 - 获取静态函数的命名空间

时间:2013-12-02 12:49:12

标签: c# static

我正在尝试进行错误记录,其中包含命名空间信息。但是当我使用静态函数时,我无法获得类命名空间(我不能使用“this”)。处理这个的任何技巧?

提前谢谢。

    public class Test
    {
        public static string Tester()
        {
            try
            {
                 //SOMETHING
            } 
            catch (Exception ex)
            {
                Error.DP.LogAdd(!!NAMESPACE HERE!!, ex.Message);
            }
        }
    }  

2 个答案:

答案 0 :(得分:3)

你可以尝试从Log函数中获取命名空间(我认为这很难):

public class Test
{
    public static string Tester()
    {
        try
        {
             //SOMETHING
        } 
        catch (Exception exception)
        {
            Log(exception);
        }
    }

    public static void Log(Exception exception)
    {
           var namespace = new StackFrame(1).GetMethod().DeclaringType.Namespace;
           //MOREOFSOMETHING
    }
}  

答案 1 :(得分:0)

跟进@ Sinatr的创意,您可以使用以下方式获取课程名称:

var NameOfClass = new StackFrame(1).GetMethod().DeclaringType.GetTypeInfo().AsType().FullName;