永続化のために NHibernate を使用するクラス ライブラリで単体テストを行っています。NHibernate は、テスト目的で Sqlite インメモリ データベースを使用しています。通常の状況では、StructureMap にセッションを開始させるのは簡単です。
ただし、テスト速度を向上させるためにメモリ内データベースを使用しているため、テスト中に使用できる単一のセッションが必要です (新しいデータベースを作成すると、データベースが吹き飛ばされるため)。そして、もうひとつシワがあります。現在私を悩ませているのは、カスタム NHibernate ベースの ASP.NET メンバーシップ プロバイダーのテストです。これらは明らかに AppDomain ごとに 1 回作成されるため、明らかな理由からセッションを挿入するべきではありません。
その型をインスタンス化する方法を指示するビットを維持しながら、特定の型のインスタンスを取り除くように指示する方法は構造マップにありますか? 本当に、それを回避できれば、HttpScoped オブジェクトの有効期間のように動作させるだけですが、どうやら Http リクエストのコンテキスト内でしかそれを行うことができません。構造マップから出てくるオブジェクトの寿命を手動で制御する簡単な方法はありますか?
これが長く、ばかげた質問である可能性があることをお詫びします。私はこのプロジェクトに一人で参加しているので、アイデアをぶつけてくれる人が実際にはいません。