Session が NHibernate によって破棄されたかどうかを確認する方法はありますか?
Session に独自の Finalizer と IDispoable の実装を持つラッパー クラスがありますが、クラスで自分で処理する前に Session が破棄されると、ObjectDisposedException を受け取ることになります。
クリーンアップコードをラップしたくありません
try {
...
}
catch (ObjectDisposedException) { }
しかし、他の方法についてはよくわかりません。Session.IsOpen および Session.IsActive プロパティは、セッションが破棄されたことを確認するための信頼できる情報を提供していないようです。
完全なソースについては、 Assemblaで表示できます。