如何从会话中获取或删除无法反序列化的对象?
(对象由另一个库存储在会话中,该库在运行时使用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--;
}
}
}
}