Custom Connection Provider with NHibernate 2.0 (Beta 2)

.NET Musings

Custom Connection Provider with NHibernate 2.0 (Beta 2)

I don't like having connection strings in config files, especially smart client config files. However, there are times when it is a necessity. So, the other "deal breaker" for me with NHibernate was to determine if I could create a custom connection provider that would allow me to have an encrypted connection string in the configuration, handle the decryption, then pass the appropriate information to NHibernate core.

Turns out this is a very simple endeavor. Create a class that derives from DriverConnectionProvider, and override one method from the base:

protected override string GetNamedConnectionString(System.Collections.Generic.IDictionary settings)
{
//do work to return an unencrypted connection string
}

Simple as that!

Happy Coding!

Comments (3) -

  • Andoni

    3/30/2010 5:39:55 AM |

    To make that work you need to change connection.provider property in config file. Isn´t it?

    I did so:

    <property name="connection.provider">BPTDAL.DriverConnectionProviderBPT</property>

    But still have this error:

    "Could not instantiate connection provider: BPTDAL.DriverConnectionProviderBPT"

    What else is missing. Do I need to tell him the assembly name? How?

    Thanks in advance,
    Andoni Ripoll

  • Andoni

    3/30/2010 5:50:29 AM |

    And then answer is, write this:

    <property name="connection.provider">BPTDAL.DriverConnectionProviderBPT, BPTDAL</property>
          
    Greetings,
    Andoni Ripoll

  • PhilJapikse

    3/30/2010 5:56:57 AM |

    That is correct. Guess it would have helped to put that in the post Smile.  Good catch!

Comments are closed
Managed Windows Shared Hosting by OrcsWeb