我正在尝试将 NHibernate 会话绑定到自定义模型绑定器:
由于自定义模型绑定器似乎是单例,我认为我需要关注线程安全。这是我当前的 IoC 代码:
kernel.Bind<ISession>().ToProvider<SessionProvider>().InRequestScope()
.OnActivation(x => ServiceModelBinder.Service = kernel.Get<IServiceService>());
在我的活页夹中,我使用该ThreadStatic
属性装饰了静态服务字段,以避免会话的并发问题。
这甚至是个好主意吗?
有没有更好的方法将每个请求范围的对象注入视图模型?还是我不应该担心它在纸上看起来有多丑,而只是从DependencyResolver
需要的地方获取当前会话?