Hrdk
Hrdk

Reputation: 81

How to identfiy Class or Method Name into method in C#?

I don't know it is possible or not, but if there is some way to do this then please suggest. I have one method and I am call this method with different classes, so how will I able to know(Class Name) into method, that from which method is called?

Below is my scenario,

public class Employee()
{
    protected bool Check()
    {
         //Here how will I know method name(Test1 or Test2) from which call is made? Please note I can't use any parameter with Check method.
    }
    public void Test1()
    {
         Check();
    }
    public void Test2()
    {
         Check();
    }
}

Upvotes: 0

Views: 86

Answers (4)

ravi zinzuwadia
ravi zinzuwadia

Reputation: 24

You will find your answer here

using System.Diagnostics;

// get call stack
StackTrace stackTrace = new StackTrace();

// get calling method name
Console.WriteLine(stackTrace.GetFrame(1).GetMethod().Name);

Upvotes: -1

Irshad
Irshad

Reputation: 3131

You can use the StackTrace;

StackTrace stackTrace = new StackTrace();
MethodBase methodBase = stackTrace.GetFrame(1).GetMethod();
Console.WriteLine(methodBase.Name);

Thanks to Jason

Upvotes: 0

Rahul Tripathi
Rahul Tripathi

Reputation: 172378

You can try this:

string myClass = MethodBase.GetCurrentMethod().DeclaringType.Name;

And in C# 6.0 then you can use nameof

nameof(YourMethodname)

Upvotes: 2

R Day
R Day

Reputation: 972

You could use

var className = this.GetType().Name;

Upvotes: 0

Related Questions