私には簡単なタスクがあります。サーバーからデータを読み取るために、サーバーに到達できない場合(サーバーがダウンしているか、ネットワークが不良である場合)、ローカルディスクキャッシュからデータをロードします(おそらく古い)。
これは、Javaコードがどのようになるかを示す単純な疑似表現です。
try {
//read from server
} catch (IOException ioe) {
//most likely a socket timeout exception
//read from local disk
} finally {
//free I/O resources
}
ただし、ホストマシンにインターネットアクセスがない場合でも例外をスローしないように見えるため、C#での実装は機能WebClient
しないようです。そのため、catchブロックを介してその状態を検出し、ローカルキャッシュに戻す方法はありません。私はWebClient
の非同期APIとそのかなり面白いコールバックチェーンを知っていますが、これは扱いにくいと感じており、私の設計目標に適切に適合していません。上記のJavaスケルトンコードと同じくらい簡単にC#でこれを行う方法はありますか?ありがとう。