btw.. only for ConnectionProvider you don't need something else than DefaultSessionFactoryConfigurationProvider because your ConnectionProvider can be injected using the default session-factory configuration provided by NH.
On Thu, Aug 26, 2010 at 9:56 AM, Fabio Maulo <[email protected]> wrote: > LOL... uNhAddIns is fully designed using IoC (I don't mean a container but > IoC) > here is a blog post with some explications > > http://fabiomaulo.blogspot.com/2009/09/configure-sessionfactory-providers.html > What you are looking for is IConfigurationProvider > Let me show you a class I'm using for a test-suite... > public class NhTestConfigurationProvider : > DefaultSessionFactoryConfigurationProvider, IDisposable > { > private Configuration configuration; > > public NhTestConfigurationProvider() > { > BeforeConfigure += ConfOrmConfigurationProviderBeforeConfigure; > AfterConfigure += ValidateOrCreateSchema; > } > > #region IDisposable Members > > public void Dispose() > { > var export = new SchemaExport(configuration); > export.Drop(false, true); > } > > #endregion > > private void ConfOrmConfigurationProviderBeforeConfigure(object sender, > ConfiguringEventArgs e) > { > Configuration configuration = e.Configuration; > configuration.Configure(); > configuration.AddDeserializedMapping((new > ConfOrmInitializer()).GetCompiledMappings(), "FullDomain"); > e.Configured = true; > } > > private void ValidateOrCreateSchema(object sender, ConfigurationEventArgs > e) > { > configuration = e.Configuration; > var export = new SchemaExport(configuration); > export.Drop(false, true); > export.Create(false, true); > } > } > > Here the setup of the test-suit > [SetUpFixture] > public class RetrieveTestContext > { > private WindsorContainer container; > > [SetUp] > public void Configure_NHibernate_and_ServiceLocator() > { > XmlConfigurator.Configure(new FileInfo("log4net.configuration.xml")); > > container = new WindsorContainer(); > container.Register(Component.For<IServiceLocator>() > .Instance(new WindsorServiceLocator(container))); > ServiceLocator.SetLocatorProvider(() => > container.Resolve<IServiceLocator>()); > > container.Register(Component.For<ISessionWrapper>() > .ImplementedBy<FakeSessionWrapper>()); > container.Register(Component.For<IConfigurationProvider>() > .ImplementedBy<NhTestConfigurationProvider>()); > container.Register(Component.For<ISessionFactoryProvider>() > .ImplementedBy<SessionFactoryProvider>()); > > try > { > container.Register(Component.For<ISessionFactory>() > > .Instance(container.GetService<ISessionFactoryProvider>().GetFactory(null))); > } > catch (Exception e) > { > Console.WriteLine(e); > throw; > } > > FillDb(container.GetService<ISessionFactoryProvider>().GetFactory(null)); > } > > > On Thu, Aug 26, 2010 at 9:02 AM, Eric <[email protected]> wrote: > >> Connection string is stored in custom DriverConnectionProvider >> (i.e. <property >> >> name="connection.provider">Mandalore.Data.Impl.MyConnectionProvider,Mandalore.Data.Impl</ >> property>) >> >> How do you manually initialize nhibernate using unhaddins? The process >> "seems" out of my control right now... >> >> On Aug 26, 6:02 am, Jason Dentler <[email protected]> wrote: >> > Where is your connection string stored? Why don't you validate it before >> > initializing NHibernate? You can always do a quick, old fashioned >> > ADO.NETconnection to test it first. >> > >> > On Wed, Aug 25, 2010 at 5:09 PM, Eric <[email protected]> wrote: >> > >> > > I am using my own DriverConnectionProvider and >> > > proxyfactory.factory_class = ThreadLocalConversationalSessionContext >> > > for a PC application. >> > >> > > I would like to be able to disable the conversation (i.e. if user >> > > connection settings are wrong), let the user change the connection >> > > settings, hit connect, and let unhaddins and nhibernate do their >> > > magic. >> > >> > > Things do not seem quite happy to have an invalid connection string, >> > > however. >> > > Is there a way to disable conversations and cause a custom >> > > DriverConnectionProvider to re-Configure? >> > >> > > Best Regards, >> > > Eric >> > >> > > -- >> > > You received this message because you are subscribed to the Google >> Groups >> > > "nhusers" group. >> > > To post to this group, send email to [email protected]. >> > > To unsubscribe from this group, send email to >> > > [email protected]<nhusers%[email protected]> >> <nhusers%[email protected]<nhusers%[email protected]> >> > >> > > . >> > > For more options, visit this group at >> > >http://groups.google.com/group/nhusers?hl=en. >> > >> > >> >> -- >> You received this message because you are subscribed to the Google Groups >> "nhusers" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<nhusers%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/nhusers?hl=en. >> >> > > > -- > Fabio Maulo > > -- Fabio Maulo -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
