簡體   English   中英

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

[英]How Can I Get Current Method's Name And Its Arguments(name and value) in C#

例如在Javascript中:

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 Service Logger。 有什么建議嗎?

謝謝大家。

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

方法名稱:

void logger([CallerMemberName] string methodName = "") { ... }

當您在doSomething()調用logger()時, methodName應該為'doSomething'

但無法獲得論點。

看到:

是否可以從當前執行的函數中以程序方式獲取參數名稱/值?

您基本上無法做到這一點。 除非您使用PostSharp之類的 AOP工具

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM