访问包装的Polly政策

时间:2017-08-28 07:26:05

标签: circuit-breaker polly

如果我包装一些政策,是否可以从包装的政策中访问它们?

示例:

private async void Button_Click(object sender, RoutedEventArgs e)
{
    newView = CoreApplication.CreateNewView();
    int newViewId = 0;
    await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        var id = Environment.CurrentManagedThreadId;
        Frame frame = new Frame();
        frame.Navigate(typeof(SecondPage), null);
        Window.Current.Content = frame;

        Window.Current.Activate();

        newViewId = ApplicationView.GetForCurrentView().Id;
    });
    bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
}

private async void SendBtn_Click(object sender, RoutedEventArgs e)
{
    await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        var id = Environment.CurrentManagedThreadId;
        Messenger.Default.Send("Test send message!!!");
    });
}

我想访问断路器以进入该状态。

1 个答案:

答案 0 :(得分:1)

目前Polly中没有办法询问已配置的PolicyWrap以获取它所包含的策略。可以添加:如果需要,请在Polly's Github上提出功能请求作为问题。

从问题中提供的代码示例中,您当然在变量cb中有断路器。因此,现在您可以将cb的值传递到您需要的位置,然后访问cb.CircuitState

编辑Polly v5.6.0现在可以使用.GetPolices<> (and related) methods本地获取PolicyWrap内的政策。