我有一个 Mvc 系统,可以与 NHibernate 和 Autofac 一起正常工作...我这样做是为了管理 NH session :

public static void Init(Assembly assembly) 
{             
     var builder = new ContainerBuilder(); 
 
     builder.RegisterControllers(assembly); 
 
     builder.Register(x => NHibernateInitializer.BuildSessionFactory()).SingleInstance(); 
     builder.Register(x => x.Resolve<ISessionFactory>().OpenSession()).InstancePerHttpRequest(); 
 
     builder.RegisterModule(new AutofacWebTypesModule()); 
     var container = builder.Build(); 
     DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); 
 
} 

现在我需要配置 Windows 服务以使用 NHibernate,但我不确定是否可以使用 Autofac。 有什么想法吗?

谢谢

请您参考如下方法:

我会将 ISession 和其他服务注册为 .InstancePerLifetimeScope(),然后让每个操作在其自己的子 LifetimeScope 中运行。这将确保所有 IDisposable 服务在操作结束时得到很好的清理。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!