Значение параметров метода через Reflection

Я пытаюсь записать параметры метода с помощью отражения. Я прочитал более ранний вопрос, опубликованный по этой проблеме также в StackOverflow, который указал мне на CLR API.

Возможно ли, что кто-нибудь может указать мне правильное направление, как мне получить значения параметров, переданных с помощью API?


person Community    schedule 09.10.2008    source источник


Ответы (3)


По сути, вы не можете использовать "ванильный" .NET-код. Параметры - это просто локальные переменные, и их значения нельзя получить, не углубляясь в API отладчика, упомянутый в другом потоке.

Что вы можете сделать, так это использовать PostSharp, чтобы вставить код регистрации. Я бы посоветовал пойти по этому пути, прежде чем взглянуть на API отладки!

person Jon Skeet    schedule 09.10.2008
comment
Я не думаю, что смогу изменить большую часть архитектуры кода. Можно ли внедрить этот фреймворк только для регистрации параметров? › - person sajidnizami; 09.10.2008

Если вы любите приключения, вы можете взглянуть на класс RealProxy в System.Runtime.Remoting.Messaging. Это позволяет вам реализовать прокси-класс, который может перехватывать вызовы ваших методов. Затем вы можете выйти из параметров и перенаправить вызов в свой фактический класс.

Это будет иметь успех в производительности, но, вероятно, даст вам то, что вы ищете ...

person Sean    schedule 09.10.2008

@ Шон: Это кажется многообещающим. Можно ли перехватить и получить такие значения в WCF? Я знаю, что журнал службы уже содержит эту информацию, но в ней трудно разобраться, что заставляет меня искать альтернативные способы ведения журнала методов и их параметров.

person sajidnizami    schedule 09.10.2008