2015-06-30 24 views
0

獲取當前方法的名稱及其參數(名稱和值),例如在Javascript中:我如何在C#

function logger(args) { 
    console.log('Func "' + args.callee.name + '" invoked.'); 
    for (var arg in args) { 
    console.log(arg); //well I cannot get those arguments' name in js 
    } 
} 

function doSomething(x, y, z) { 
    logger(this.arguments); 
    //do something... 
} 

我怎樣才能做到在C#中類似的東西嗎?

其實,我正要在我的程序中實現一個Web服務記錄器。對此有何建議?

感謝所有。

編輯:對不起,我沒說清楚。我知道System.Reflection.MethodBase.GetCurrentMethod()可以讓我調用者函數的MethodInfo,但參數的值是我所關心的更多。

+0

System.Reflection。瞭解它,對於像你這樣的情況非常有用。 –

+0

什麼是您的Web服務框架? WCF? –

+0

@NahumLitvin,我之前看過,但似乎無法獲得參數**值**,或者我只是錯過了一些東西? – Narcotics

回答

0

方法名稱:

void logger([CallerMemberName] string methodName = "") { ... } 
當你調用 doSomething() logger()

methodName應該是'doSomething'

但沒有辦法獲得參數。