2011-03-16 67 views
1

關鍵問題我們有自己的緩存框架,工作得很好,我們喜歡它。我們希望將它連接到NHibernate,而不是像NH一樣依賴其他緩存實現。在自定義ICACHE實施

我寫NHibernate.Cache.ICache的實現,它填補了我們與NH框架。我根據我的實現幾乎完全在此:

是跳出我馬上蝙蝠

https://nhcontrib.svn.sourceforge.net/svnroot/nhcontrib/trunk/src/NHibernate.Caches/Velocity/NHibernate.Caches.Velocity/VelocityClient.cs

的一件事是在將指令接口的高速緩存鍵類型的對象。我們的框架鍵是使用字符串的緩存。我注意到上面的Velocity實現只是在傳遞給Get(對象鍵)和Put(對象鍵)方法的鍵實例上執行.ToString()。這讓我有點緊張。

在我的測試它出現在「重點」對象是字符串類型,它的實體名稱。

我的問題:

  • 是一味的關鍵實例調用的ToString()一種安全的方法(我檢查空)?
  • 如果這個實現確實是安全的,這是否意味着它總是一個字符串?
  • 如果這始終是一個字符串,那麼爲什麼這種類型的對象?

NH傢伙比我聰明,所以它的類型對象的事實讓我認爲我在這裏失去了一些東西。我真的不想在我的緩存實現中引入一些不明確的,隨機的會話管理錯誤以及不安全的密鑰用法。

任何指導,將不勝感激 - 歡呼

回答

相關問題