私の知る限り、セッション ファクトリから開いているセッションのリストを取得するためのサポートはありません。開いているセッションを監視する独自の方法があり、次の構造を使用します。
ISession への弱参照を持つクラスを作成します。この方法では、セッションがガベージ コレクションされている場合にガベージ コレクターを中断しません。
public class SessionInfo
{
private readonly WeakReference _session;
public SessionInfo(ISession session)
{
_session = new WeakReference(session);
}
public ISession Session
{
get { return (ISession)_session.Target; }
}
}
開いているセッションを保存するためのリストを作成します。
List<SessionInfo> OpenSessions = new List<SessionInfo>();
DAL(データアクセス層)には、次のメソッドがあります。
public ISession GetNewSession()
{
if (_sessionFactory == null)
_sessionFactory = createSessionFactory();
ISession session = _sessionFactory.OpenSession();
OpenSessions.Add(new SessionInfo(session));
return session;
}
このようにして、必要なときに照会できるオープン セッションのリストを維持します。おそらくこれはあなたのニーズを満たしていますか?