Пользовательская конфигурация строки подключения NHibernate - PullRequest
2 голосов
/ 19 мая 2010

У меня есть проект библиотеки c #, который я настроил с помощью nhibernate, и мне нравится, что люди могут импортировать этот проект и использовать его. В этом проекте есть FrontController, который выполняет всю работу.

У меня есть строка подключения в конфигурационном файле hibernate и в файле app.config другого проекта.

было бы неплохо, чтобы любой мог установить строку подключения в этом библиотечном проекте и использовать ее. например, через метод, который будет принимать строку подключения в качестве параметра. или при создании нового экземпляра FrontController для передачи строки подключения в конструктор. или если у вас есть идея получше.

Как это сделать?

Мне бы хотелось, чтобы эта библиотека классов использовала ту же базу данных проекта, которая была импортирована.

Как программно установить строку подключения гибернации?

та же идея для log4net.

1 Ответ

5 голосов
/ 19 мая 2010

Это зависит от того, как вы строите NHibernate.Cfg.Configuration и фабрику сессий. Это может быть так просто, как это:

public ISessionFactory BuildSessionFactory(string connectionString) {
    var cfg = new Configuration()
                .AddProperties(new Dictionary<string, string> {
                    {Environment.ConnectionDriver, typeof (SQLite20Driver).FullName},
                    {Environment.ProxyFactoryFactoryClass, typeof (ProxyFactoryFactory).AssemblyQualifiedName},
                    {Environment.Dialect, typeof (SQLiteDialect).FullName},
                    {Environment.ConnectionProvider, typeof (DriverConnectionProvider).FullName},
                    {Environment.ConnectionString, connectionString},
                })
                .AddAssembly(Assembly.GetExecutingAssembly());
    return cfg.BuildSessionFactory();
}

Я не уверен, что вы хотите сделать с log4net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...