我正在尝试进行错误记录,其中包含命名空间信息。但是当我使用静态函数时,我无法获得类命名空间(我不能使用“this”)。处理这个的任何技巧?
提前谢谢。
public class Test
{
public static string Tester()
{
try
{
//SOMETHING
}
catch (Exception ex)
{
Error.DP.LogAdd(!!NAMESPACE HERE!!, ex.Message);
}
}
}
答案 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;