thể trùng lặp:
How can I find the method that called the current method?Lấy tên phương pháp gọi điện thoại từ bên trong một phương pháp
Tôi có một phương pháp trong một đối tượng mà được gọi từ một số nơi trong phạm vi đối tượng. Có một cách nhanh chóng và dễ dàng để có được tên của phương pháp được gọi là phương pháp phổ biến này.
Pseudo mã ví dụ:
public Main()
{
PopularMethod();
}
public ButtonClick(object sender, EventArgs e)
{
PopularMethod();
}
public Button2Click(object sender, EventArgs e)
{
PopularMethod();
}
public void PopularMethod()
{
//Get calling method name
}
Trong PopularMethod()
Tôi muốn nhìn thấy giá trị của Main
nếu nó được gọi là từ Main
... Tôi muốn xem "ButtonClick
" nếu PopularMethod()
được gọi từ ButtonClick
Tôi đã xem System.Reflection.MethodBase.GetCurrentMethod()
nhưng điều đó sẽ không giúp tôi có được phương pháp gọi điện. Tôi đã nhìn vào lớp StackTrace
nhưng tôi thực sự không thưởng thức chạy toàn bộ dấu vết ngăn xếp mỗi khi phương thức đó được gọi.
Để biết thêm thông tin, hãy xem: http://discuss.joelonsoftware.com/default.asp?dotnet.12.511358.10 –
System.Diagnostics là không gian tên của StackTrace, System.Reflection là vùng tên của MethodBase. – Guvante
Jason - Cảm ơn bạn, tôi không chắc tài nguyên chuyên sâu về phương pháp "StackTrace" như thế nào, nhưng điều này làm tôi có được những gì tôi đang tìm kiếm. Đây chỉ là một khối mã gỡ lỗi cho tôi, điều này sẽ không đi vào sản xuất. Cảm ơn lần nữa vì sự giúp đỡ của bạn ! –