PostSharp: Почему у LogAttribute нет советов? - PullRequest
0 голосов
/ 05 февраля 2019

Я использую ILSpy для изучения класса LogAttribute.Но я не могу понять, как это работает?

Как я понимаю, существует два способа создания аспекта:

1) Высокий уровень: OnMethodBoundaryAspect, OnExceptionAspect, MethodInterceptionAspect, LocationInterceptionAspect, EventInterceptionAspect.

2) Низкий уровень: MethodLevelAspect с атрибутами On *** Advice.

Но LogAttribute не использует ни первый, ни второй регистр.LogAttribute расширяет MethodLevelAspect, но не имеет советов.Итак, как это работает?

1 Ответ

0 голосов
/ 03 апреля 2019

Два подхода к созданию аспекта, описанного в этом вопросе, - это те, которые поддерживаются и документируются.Однако на более низком уровне PostSharp SDK сопоставляет интерфейс, реализованный классом аспектов, с классом ткача.Затем выбранный ткач обрабатывает IL-ткачество целевого элемента кода.

Базовые классы для аспектов (например, OnMethodBoundaryAspect) и для советов (например, OnMethodEntryAdvice) предоставляются для того, чтобы сделать реализацию общих аспектов более удобной.В PostSharp 6.1 конечный пользователь не поддерживает сценарий создания настраиваемого аспекта с нуля для конечных пользователей.

...