PostSharp OnExceptionAspect не работает должным образом - PullRequest
2 голосов
/ 16 июля 2009

Создан простой класс для проверки OnExceptionAspect в PostSharp.

[Serializable]
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
public class ExceptionSwallower : OnExceptionAspect
{
    public override void OnException(MethodExecutionEventArgs eventArgs)
    {
        eventArgs.FlowBehavior = FlowBehavior.Return; 
        base.OnException(eventArgs);  
    }
}

Добавлен атрибут к методу

    [ExceptionSwallower]
    public void SomeMethod()
    {
        throw new Exception();
    }

и вызвал его.

Однако, исключение на самом деле не проглатывается, что кажется странным.

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

Ответы [ 2 ]

3 голосов
/ 10 декабря 2011

Вы можете проверить вывод сборки: Это может дать некоторую подсказку, была ли постобработка вовлечена или нет, например, POSTSHARP: сообщение Postsharp PS0131: модуль YourAssembly.dll не содержит каких-либо аспектов или других преобразований. Для повышения производительности во время сборки рассмотрите возможность отключения PostSharp для этого модуля, установив в своем проекте символ компиляции (он же константа) «SkipPostSharp» или установите свойство MSBuild «SkipPostSharp = True». : message: PostSharp complete - 0 ошибок, 1 предупреждение, обслужено в 1637 мс

0 голосов
/ 24 июля 2009

Иногда помогает взглянуть на получившуюся сборку с помощью Reflector. PostSharp генерирует простые сборки .NET, никакой магии нет.

...