Unity: Interception (AOP) перехватывает свойства? а также методы перехвата на форме (winform)?

Мне очень интересно узнать, возможно ли перехватить свойства, а также методы? Я нашел отличный пример и, кажется, поддерживает методы перехвата, можно ли также перехватывать свойства и как насчет событий ??

Я хотел бы написать систему ведения журнала AOP для своего приложения.

вот пример: http://codetheorist.com/2011/04/interception-made-easy/

Я попробовал, и мне удалось заставить его работать с библиотекой классов,

что, если я хочу заставить его работать на WinForms? Мне также нужно разрешить форму из контейнера, форма на самом деле является классом, но я не мог заставить ее работать.

У кого какие мысли, или уже сделал?

Я заметил Aurum, который является фреймворком поверх Unity, но я думаю, что предпочел бы использовать расширения Unity, если это вообще возможно.

ИЗМЕНИТЬ

Это то, что я пробовал для своих winforms.... но это не сработало, это в program.cs

var form = UnityContainer.Container.Resolve<frmMain>();

///Application.Run(new frmMain());  // OLD

Application.Run(form);  // new using the resolved from unity.. It resolves it and i registered it ... 

person Martin    schedule 28.04.2011    source источник


Ответы (1)


Свойство — это просто метод с некоторыми дополнительными метаданными, поэтому, если свойство является виртуальным или частью интерфейса, его можно перехватить, как и любой другой виртуальный метод.

person Mark Seemann    schedule 28.04.2011
comment
Ах, хорошо, да, с сеттерами и геттерами, поэтому предположим, что метод не нужно адаптировать для захвата свойств... Дополнительные метаданные?? мне нужно проверить это? - person Martin; 28.04.2011
comment
На самом деле, поскольку System.Windows.Forms.Form наследуется от MarshalByRefObject, вы можете перехватить что угодно, если используете TransparentProxyInterceptor, вы не ограничены только виртуальными или интерфейсными методами. - person Chris Tavares; 29.04.2011