PostSharp await Выполните следующий код - PullRequest
0 голосов
/ 17 декабря 2018

я использую postsharp Чтобы справиться с попыткой перехвата, в последнем посте есть проблема, я пересылаю его
открытый класс ExceptionAspectAttribute: OnExceptionAspect {public ExceptionAspectAttribute () {ApplyToStateMachine = true;}

    public override void OnException(MethodExecutionArgs args)
    {
        var msg =
            $"时间[{DateTime.Now:yyyy年MM月dd日 HH时mm分}]方法{args.Method.Name}发生异常: {args.Exception.Message}\n{args.Exception.StackTrace}";
        Debug.WriteLine(msg);
        args.ReturnValue = Task.FromResult(true);
        args.FlowBehavior = FlowBehavior.Continue;
   }
}

это мой код

public partial class MainWindow : Window

{приватная строка a;

[ExceptionAspect]
private async Task<object> Init()
{
    a.GetTypeCode();//throw Exception
    return null;
}

public MainWindow()
{
    InitializeComponent();
    this.Loaded += MainWindow_Loaded;
}

private  void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    aaa();
    Debug.WriteLine("do something!");
}

public async  void aaa()
{
     //This code executes and returns to MainWindow_Loaded,i want code keep going
     var a= await Init();

    //i want to Execute the following code
    if (a == null)
    {
        Debug.WriteLine("the following code");
    }
}

}

я хочу выполнить Init ()метод, а затем продолжайте выполнять Execute

 if (a == null)
        {
            Debug.WriteLine("the following code");
        }

, но он возвращается к MainWindow_Loaded (), как мне использовать postsharp Заранее спасибо

...