2011-03-16 70 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家伙比我聪明,所以它的类型对象的事实让我认为我在这里失去了一些东西。我真的不想在我的缓存实现中引入一些不明确的,随机的会话管理错误以及不安全的密钥用法。

任何指导,将不胜感激 - 欢呼

回答

相关问题