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);
        }