Схема автоматического выключателя Polly - для тестирования соединительных цепочек

Я пытаюсь проверить, является ли строка подключения нулевой, используя Полли. Если он нулевой, я хочу попробовать три раза, используя CircuitBreaker, и сообщение должно быть выведено в окне консоли.

Policy policy = null;

// Break the circuit after the specified number of exceptions
// and keep circuit broken for the specified duration.
policy = Policy
               .Handle<NullReferenceException>()
               .CircuitBreaker(3, TimeSpan.FromSeconds(30)); 
try
   {
     string connected = policy.Execute(() => repository.GetConnectionString());
   }

catch (Exception ex)
      {
         Console.WriteLine("{0}",ex.Message);               
      }     

и метод GetConnectionString:

public string GetConnectionString()
    {
        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = ConfigurationManager.ConnectionStrings["Test1"].ConnectionString;
        return conn.ConnectionString;
    }

Чтобы проверить это, в файле App.config я изменил имя строки подключения.

Однако он не обрабатывает исключение NullReference.

Когда я отлаживаю приложение, открывается CircuitBreakerEngine.cs, который не найден, и выводится только «Ссылка на объект не установлена ​​для экземпляра объекта».

Ожидается: для распечатки ссылки на объект, не заданной для экземпляра объекта трижды, и сообщения из исключительной ситуации сломанной цепи

Ответы на вопрос(1)

Ваш ответ на вопрос