我正在使用 Castle DynamicProxy 为我的类型添加一个拦截器。现在我需要获取底层的基本类型(而不是代理本身)。
我在 SO 上发现了一些提示,建议像这样使用 ProxyUtil 类:
object realInstance = ProxyUtil.GetUnproxiedInstance(proxyInstance);
这似乎不起作用
bool isProxy = ProxyUtil.IsProxy(realInstance);
总是正确的。
我还尝试使用以下代码片段,这基本上是 ProxyUtil 正在做的事情:
var accessor = proxyInstance as IProxyTargetAccessor;
var realInstance = accessor.DynProxyGetTarget();
结果相同,realInstance 仍然是代理。
我在这里想念什么?