逆シリアル化できなかったセッションからオブジェクトを取得または削除する方法は? (オブジェクトは、メソッドを使用して実行時にロードされた別のライブラリによってセッションに保存されますAssembly.LoadFrom
)
すべてのリクエストで実行されるメソッドを作成する必要がありますが、セッション全体を反復するのは悪い考えだと思います。セッションからデシリアライズできないオブジェクトを削除するより良い方法はありますか?
public void ResetSessionIfNeeded()
{
if (Session.Mode == SessionStateMode.SQLServer ||
Session.Mode == SessionStateMode.StateServer)
{
var index = 0;
var count = Session.Count;
while (index < count)
{
try
{
var tempObj = Session[index];
index++;
}
catch (Exception)
{
Session.RemoveAt(index);
count--;
}
}
}
}