Практически все, что я пытаюсь сделать, это аспект использования интерфейса IInterceptor
из пространства имен Castle.DynamicProxy
для регистрации определенных действий элемента и сохранения их в файл.
У меня есть реализациякак описано ниже.
Действия типа интерфейса, которые я перехватываю, выглядят так:
public interface IPageElement
{
bool Visible { get; }
void Select();
...
}
У меня есть класс, функция которого заключается в том, чтобы служить фабрикой для создания объектов типа IPageElement
.Таким образом, каждый раз, когда вызывается метод фабрики, я возвращал прокси-элемент, используя CreateInterfaceProxyWithTarget<T>
, таким образом:
return ProxyGenerator()
.CreateInterfaceProxyWithTarget<IPageElement>(
elementToProxy,
new MyInterceptor(elementToProxy));
Как вы уже поняли, класс MyInterceptor
реализует интерфейс IInterceptor
из Castle.DynamicProxy
.Итак, я хотел бы знать, как получить имя объекта IPageElement
, который перехватывается.
Мне удалось получить метод, который он вызывает, параметры (если есть),и т.д., используя параметр IInvocation
, который есть у метода Intercept:
invocation.Method; // for the method
invocation.Arguments; // for the arguments of the method
Пробовал другие методы / свойства IInvocation
, но не удача.