public static void BootstrapNHibernate(this Registry registry, ConfigurationBehavior behavior) { registry.For <ITransactionProcessor>().Use <TransactionProcessor>(); registry.For <ISqlRunner>().Use <SqlRunner>(); registry.For <IRepository>().Use <Repository>(); registry.For <IEntityFinderCache>().Use <StructureMapEntityFinderCache>(); registry.For <IEntityFinder>().Use <EntityFinder>(); if (behavior == ConfigurationBehavior.UsePersistedConfigurationIfItExists) { registry.ForSingletonOf <IConfigurationSource>().Use <FileCacheConfigurationSource>() .Ctor <IConfigurationSource>().Is <ConfigurationSource>(); } else { registry.ForSingletonOf <IConfigurationSource>().Use <ConfigurationSource>(); } registry.For <ISchemaWriter>().Use <SchemaWriter>(); registry.ForSingletonOf <ISessionFactory>().Use( c => c.GetInstance <IConfigurationSource>().Configuration().BuildSessionFactory()); registry.For <ISession>().Use(c => c.GetInstance <ISessionFactory>().OpenSession()); }
public static void BootstrapNHibernate <TNHibernateRegistry>(this Registry registry, ConfigurationBehavior behavior) where TNHibernateRegistry : NHibernateRegistry { registry.For <IConfigurationModifier>().Add <TNHibernateRegistry>(); registry.BootstrapNHibernate(behavior); }