Patrón de disyuntor Polly: para probar cadenas de conexión
Estoy tratando de probar si la cadena de conexión es nula usando Polly. Si es nulo, quiero intentarlo tres veces con CircuitBreaker y el mensaje debería aparecer en la ventana Consola.
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);
}
y el método GetConnectionString es:
public string GetConnectionString()
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["Test1"].ConnectionString;
return conn.ConnectionString;
}
Para probar esto, en App.config he cambiado el nombre de la cadena de conexión.
Sin embargo, no parece manejar la excepción NullReference.
Cuando depuro la aplicación, abre CircuitBreakerEngine.cs no encontrado e imprime "Referencia de objeto no establecida en una instancia de un objeto" solamente.
Se espera: para imprimir la referencia del objeto no establecida en una instancia de un objeto tres veces y el mensaje de la Excepción del circuito roto