Castly Dynamic Proxy - Получить возвращаемое значение целевого метода - PullRequest
1 голос
/ 25 июля 2011

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

object result = invocation.GetConcreteMethod().Invoke(instance, null); 

object result = invocation.GetConcreteMethodInvocationTarget().Invoke(instance, null); 

Это вызывает бесконечный цикл.Я хочу иметь возможность получить возвращаемое значение исходного целевого метода прокси перед вызовом Invocation.Proceed ().

РЕДАКТИРОВАТЬ - Fyi Я заставил его работать, используя Activator.CreateInstance, но мне интересно, есть ли более чистый способ достижения эквивалента:

object instance = Activator.CreateInstance(invocation.TargetType); 

invocation.MethodInvocationTarget.Invoke(instance, invocation.Arguments); 

Проблема в томэто просто новый экземпляр без прокси исходного объекта, а я хочу сам исходный экземпляр без прокси.

1 Ответ

5 голосов
/ 25 июля 2011
invocation.Proceed();

var returnValue = invocation.ReturnValue;
...