因此,我要做的几乎是一个使用IInterceptor
名称空间中的Castle.DynamicProxy
接口记录某些元素操作并将其保存到文件的方面。
我所看到的实现如下所述。
我正在拦截的界面类型操作如下:
public interface IPageElement
{
bool Visible { get; }
void Select();
...
}
我有一个类,它的功能是用作创建类型IPageElement
的对象的工厂。因此,每次调用工厂方法时,我都会使用CreateInterfaceProxyWithTarget<T>
通过以下方式返回一个proxy元素:
return ProxyGenerator()
.CreateInterfaceProxyWithTarget<IPageElement>(
elementToProxy,
new MyInterceptor(elementToProxy));
您猜想,MyInterceptor
类实现了IInterceptor
中的Castle.DynamicProxy
接口。因此,我想知道的是如何获取被拦截的IPageElement对象的名称。
通过使用Intercept方法具有的IInvocation
参数,我设法获取了它调用的方法,参数(如果有的话)等。
invocation.Method; // for the method
invocation.Arguments; // for the arguments of the method
尝试了IInvocation
的其他方法/属性,但没有运气。
任何帮助或建议都将不胜感激:) 谢谢你。