Добавление аспекта в абстрактный метод? - PullRequest
0 голосов
/ 15 сентября 2009

PostSharp выдает эту ошибку:

PostSharp: невозможно применить OnMethodInvocation аспект (...) с сотворение целевого сайта на реферате или внешний метод "...". Рассматривать исключая аспект из этого метода или используйте ткачество на колл-сайте.

Предлагаемое плетение колл-сайта не является для меня подходящим решением. Есть ли способ добавить предварительную / последующую обработку для абстрактного метода?

Ответы [ 2 ]

1 голос
/ 15 сентября 2009

Я предлагаю вам использовать наследование аспектов. Аспект будет автоматически добавлен ко всем методам, реализующим абстрактный метод.

См. MulticastAttribute.AttributeInheritance или MulticastAttributeUsageAttribute.Inheritance или официальная документация для получения подробной информации.

0 голосов
/ 15 сентября 2009

Это, конечно, невозможно - как бы вы выполняли создание целевых сайтов абстрактным методом, методом без какого-либо кода? Конечно, вы можете выполнять переплетение целевых сайтов со всеми производными типами, реализующими метод, но для этого необходимо, чтобы вы управляли этими типами. Или вы можете сделать метод неабстрактным и виртуальным и требовать, чтобы производные типы вызывали базовую реализацию.

...