如何将连接字符串注入到我的nhibernate配置中?

如何将连接字符串注入到我的nhibernate配置中?,nhibernate,Nhibernate,我需要能够在运行时配置我的连接字符串,最好是从配置文件中配置,这将是最简单的解决方案。但是,我不能使用ConnectionString.FromAppSetting或ConnectionString.FromConnectionString WithKey。我的数据访问程序集是从控制台应用程序、win窗体和web应用程序引用的。虽然我可以将“设置”添加到我的项目中,但它只是一个dll,不会将app.config带到实际的应用程序构建目标 我不认为这太不寻常。这通常是如何处理的?这是何时使用依赖项

我需要能够在运行时配置我的连接字符串,最好是从配置文件中配置,这将是最简单的解决方案。但是,我不能使用ConnectionString.FromAppSetting或ConnectionString.FromConnectionString WithKey。我的数据访问程序集是从控制台应用程序、win窗体和web应用程序引用的。虽然我可以将“设置”添加到我的项目中,但它只是一个dll,不会将app.config带到实际的应用程序构建目标

我不认为这太不寻常。这通常是如何处理的?这是何时使用依赖项注入(我可以从单独的文件中配置)的一个主要示例吗?我正在将连接字符串馈送到我的“工作单元”对象,但我希望静态地这样做,以便只构建一次config和sessionfactory


如果需要的话,我当然可以澄清,但我不确定最好的提问方式。

您可以使用hibernate.cfg.xml(它适用于所有平台)。 或者,您可以执行以下操作

  • 继承DriverConnectionProvider
  • 重写ConnectionString属性,并从任意位置读取连接字符串
  • 以代码或xml向nhibernate配置提供新的连接提供程序
  • 您可以在DriverConnectionProvider中使用ServiceLocation,也可以在Unaddins上使用EnhancedBytecodeProvider。在谷歌上搜索增强字节码提供商和Fabio Maulo


    下面是一个例子:

    Perfect。我只需要在正确的方向上轻推,或者轻推到对象模型的正确部分。link是死的,可能是死的