Castle DynamicProxy: obter objeto não-protegido
Estou usando o Castle DynamicProxy para adicionar um interceptador aos meus tipos. Agora eu preciso para obter o tipo de base subjacente (não o próprio proxy).
Eu encontrei algumas dicas sobre o SO que sugeriu usar a classe ProxyUtil assim:
object realInstance = ProxyUtil.GetUnproxiedInstance(proxyInstance);
Isso não parece funcionar como
bool isProxy = ProxyUtil.IsProxy(realInstance);
é sempre verdade.
Eu também tentei usar o seguinte trecho de código, que é essencialmente o que o ProxyUtil está fazendo:
var accessor = proxyInstance as IProxyTargetAccessor;
var realInstance = accessor.DynProxyGetTarget();
com os mesmos resultados, o realInstance ainda é um proxy.
O que estou perdendo aqui?