我正在对使用 NHibernate 进行持久性的类库进行单元测试。NHibernate 使用 Sqlite 内存数据库进行测试。在正常情况下,很容易让 StructureMap 为我踢出一个会话。
但是,因为我使用内存数据库来提高测试速度,所以我需要在测试期间有一个可用的会话(因为当我创建一个新的数据库时它会破坏数据库)。还有另一个皱纹。目前困扰我的案例是测试一个自定义的基于 NHibernate 的 ASP.NET 成员资格提供程序。这些显然是每个 AppDomain 创建一次,因此出于显而易见的原因,我不应该将会话注入其中。
结构映射中有没有办法告诉它摆脱特定类型的实例,同时仍然保留告诉它如何实例化该类型的位?真的,如果我能摆脱它,我只会让它像 HttpScoped 对象生命周期一样,但显然我只能在 Http 请求的上下文中这样做。有没有一种直接的方法来手动控制从结构图中出来的对象的生命周期?
我为这个问题的长度以及这是一个愚蠢的问题的可能性道歉。我在这个项目上是一个人,所以我真的没有人可以提出想法。