Схема автоматического выключателя 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, который не найден, и выводится только «Ссылка на объект не установлена для экземпляра объекта».
Ожидается: для распечатки ссылки на объект, не заданной для экземпляра объекта трижды, и сообщения из исключительной ситуации сломанной цепи