2015-06-30 4 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#?

На самом деле, я собирался внедрить регистратор веб-сервисов в своей программе. Любое предложение для этого?

Спасибо всем.

отредактировал: Извините, но я не уточнил. Я знал, что System.Reflection.MethodBase.GetCurrentMethod() может получить мне функцию MethodInfo функции caller, но значение аргументов - это то, что я больше беспокою.

+0

System.Reflection. Читайте об этом, очень полезно для такой ситуации, как ваша. –

+0

Какова ваша структура веб-сервиса? ФОС? –

+0

@NahumLitvin, я читал это раньше, но похоже, что он не может получить аргументы ** значение **, или, может быть, я что-то пропустил? – Narcotics

ответ

0

см:

Can I get parameter names/values procedurally from the currently executing function?

вы основно не можете это сделать. , если вы используете инструмент АОП, такой как PostSharp

+0

Спасибо за это, я искал более простое и легкое решение перед Но я позже буду копаться в «PostSharp», посмотрю, смогу ли я использовать его легко. – Narcotics

0

имя метода:

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

при вызове logger() в doSomething(), methodName должен быть 'doSomething'.

, но это не способ получить аргументы.

Смежные вопросы