Castle DynamicProxy: Obtener objeto sin proxy

Estoy usando Castle DynamicProxy para agregar un interceptor a mis tipos. Ahora necesito obtener el tipo base subyacente (NO el proxy en sí).

Encontré algunos consejos sobre SO que sugirieron usar la clase ProxyUtil de la siguiente manera:

object realInstance = ProxyUtil.GetUnproxiedInstance(proxyInstance);

Esto no parece funcionar como

bool isProxy = ProxyUtil.IsProxy(realInstance);

siempre es verdad

También intenté usar el siguiente fragmento de código, que es esencialmente lo que hace ProxyUtil:

var accessor = proxyInstance as IProxyTargetAccessor;
var realInstance = accessor.DynProxyGetTarget();

Con los mismos resultados, realInstance sigue siendo un proxy.

¿Que me estoy perdiendo aqui?

Respuestas a la pregunta(3)

Su respuesta a la pregunta