Castly Dynamic Proxy - получить возвращаемое значение целевого метода

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

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

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

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

EDIT - Fyi, я заставил его работать с помощью Activator.CreateInstance, но мне интересно, есть ли более чистый способ достичь эквивалента:

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

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

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


person Sean Thoman    schedule 24.07.2011    source источник


Ответы (1)


person    schedule
comment
Всегда ноль для меня ... какие-нибудь мысли? - person Aleksander Bethke; 01.10.2015
comment
он будет нулевым, если вы вызовете его до invocation.Proceed(). В конце концов, что-то должно давать возвращаемое значение - person Krzysztof Kozmic; 10.01.2020