2012-08-22 20 views
7

Làm thế nào để có được tên phương pháp hiện hành trong chiến thắng 8 (WinRT) ứng dụng ... trước đó trong WP7 chúng ta có thể sử dụng System.Reflection.MethodBase.GetCurrentMethod().Name nhưng nó không còn ở đó nữa nhờLàm thế nào để có được tên phương pháp win 8 ứng dụng

+0

Bạn có nghĩa là trong WinRT? 'GetCurrentMethod' chắc chắn trong .NET 4.5 .. –

+0

@JonSkeet WinRT – CognitiveDesire

Trả lời

6

Vâng, .NETCore thiếu rất nhiều thứ như vậy ... và thậm chí không có được tôi đã bắt đầu trên GetTypeInfo()! Nhưng có lẽ một giải pháp thực dụng là để có được trình biên dịch để làm điều đó cho bạn?

string CallerName([CallerMemberName]string caller = "") 
{ 
    return caller; 
} 
... 
string name = CallerName(); 
+0

cảm ơn nó đã làm việc – CognitiveDesire

+0

@CognitiveDesire nó sẽ nhanh hơn, quá - không phản chiếu. Vì vậy, nếu bạn đang sử dụng nhiều khung mục tiêu, nó sẽ là giá trị xem xét việc sử dụng này trên tất cả những người hỗ trợ nó. –

+0

vâng .. ngay bây giờ mục tiêu của tôi là chỉ để đăng nhập .. cảm ơn – CognitiveDesire

1

Tùy chọn này có thể hữu ích nếu bạn cần phải ghi đè một phương pháp

private string GetMethodName(Expression<Action> expression) 
{ 
    var methodName = (expression.Body as MethodCallExpression).Method.Name; 
    return methodName; 
} 

Sau đó chỉ cần gọi nó như

GetMethodName(() => TheNameOfTheCallingMethod()); 
Các vấn đề liên quan