我有一个c#库项目,我使用nhibernate配置,我喜欢人们能够导入这个项目并使用该项目。这个项目有FrontController,可以完成所有的工作。
我在hibernate配置文件和另一个项目的app.config文件中有一个连接字符串。
任何人都可以将连接字符串设置为此库项目并使用它。例如通过一个将connectiong字符串作为参数的方法。或者在创建FrontController的新实例时将连接字符串传递给构造函数。或者如果你有更好的主意。
怎么做?
我希望这个类库使用导入的项目的相同数据库。
如何以编程方式设置hibernate连接字符串?
对于log4net也是一样的想法。答案 0 :(得分:4)
这取决于您构建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做什么。