2011-01-31 114 views
0

我需要能够在运行时配置我的连接字符串,最好从配置文件将是最简单的解决方案。但是,我无法使用ConnectionString.FromAppSetting和ConnectionString.FromConnectionStringWithKey。我的数据访问程序集是从控制台应用程序,赢取表单和Web中引用的。虽然我可以将“设置”添加到我的项目中,但它只是一个dll,并不会将该app.config带到实际的应用程序构建目标。如何在我的nhibernate配置中注入连接字符串?

我不认为这太少见。典型的处理方式是什么?这是什么时候使用依赖注入的一个很好的例子(我可以从一个单独的文件配置一个?)我将连接字符串提供给我的'工作单元'对象,但我想静态地只建立一次config和sessionfactory。

如果需要,我可以明确澄清,但我不确定询问的最佳方式。

回答

2

您可以使用hibernate.cfg.xml(它适用于每个平台)。 或者你可以做以下

  1. 继承DriverConnectionProvider
  2. 覆盖ConnectionString属性,并从任何地方读取连接字符串。
  3. 在代码或xml中将您的新连接提供程序提供给您的nhibernate配置。

您可以在DriverConnectionProvider中使用ServiceLocation,也可以在unhaddins上使用EnhancedBytecodeProvider。在谷歌搜索增强的bytecodeprovider和Fabio Maulo。

下面是一个例子:Dynamically change user info in connection string

+0

完善。我只需要按照正确的方向微调,或者轻推对象模型的右侧部分。 – hometoast 2011-01-31 19:43:26

相关问题