В моей программе winform я использую класс перехватчиков Postsharp для каждого события управления, чтобы избежать повторения повторения попыток/catch.Postsharp AOP MethodInterception Aspect с async
Обычай метод PostSharp:
[Serializable]
public class OnErrorShowMessageBox : MethodInterceptionAspect
{
public override void OnInvoke(MethodInterceptionArgs args)
{
try
{
args.Proceed();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
args.ReturnValue = null;
}
}
}
Использование этого attributs:
[OnErrorShowMessageBox]
private void txtComments_TextChanged(object sender, EventArgs e)
{
//blabla
}
Это работает как шарм, но знаю, я хотел бы использовать асинхр на мероприятии. Так txtComments_textChanged станет:
[OnErrorShowMessageBox]
private async void txtComments_TextChanged(object sender, EventArgs e)
{
await //blabla
}
И вот проблема. Try/catch bloc в методе перехватчика ничего не поймать, когда асинхронно ... Как я могу это сделать? спасибо
Вы используете версию 3.1, которая [добавлена поддержка для 'методов async'] (http://www.postsharp.net/blog/post/New-in-PostSharp-31-Support-for-async и-итератор-метода)? –
@ StephenCleary Я использую версию 4.039. Может быть, ваша ссылка - ответ, но я не вижу, как мне изменить свой код по вашей ссылке (я начинаю postsharp beginner) спасибо – Julian50
@StephenCleary Пожалуйста, помогите мне, помогите? – Julian50