2011-01-31 92 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

相關問題