如何获取使用该方法的类的名称

时间:2013-08-04 17:50:02

标签: class c#-4.0 get names

在这个方法中,我写了一条错误信息。我需要编写使用此方法而不是{0}的当前类的名称。 希望我的问题很清楚。感谢。

class WriteEx
{
    public void WriteFormatExceptionError(string value, Exception ex, Logger logger)
    {
        string message = string.Format("Error occured in {0}. Cannot convert input string to double. Input string value: {1}.", **class name that used this method**, value);
        logger.WriteLog(message, ex);
        Console.WriteLine(ex.Message);
    }
}

1 个答案:

答案 0 :(得分:0)

请注意System.Diagnostics.StackTrace非常慢!

var st = new System.Diagnostics.StackTrace();

if (st.FrameCount > 1) {
    // GetFrame(0) returns the current method.
    var frame = st.GetFrame(1);
    var method = frame.GetMethod();
    var methodName = method.Name;

    // method.DeclaringType is a Type. You could even use
    // method.DeclaringType.FullName
    var methodClass = method.DeclaringType.Name;
}