Polly を使用して接続文字列が null かどうかをテストしようとしています。null の場合、CircuitBreaker を使用して 3 回試行し、コンソール ウィンドウにメッセージが出力されるはずです。
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 Exception を処理していないようです。
アプリケーションをデバッグすると、CircuitBreakerEngine.cs が見つからず、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」のみが表示されます。
予想される : オブジェクト参照がオブジェクトのインスタンスに設定されていないことを 3 回出力し、壊れた回路の例外からメッセージを出力する