Nhibernate 定制ICache实现的关键问题

Nhibernate 定制ICache实现的关键问题,nhibernate,Nhibernate,我们有自己的缓存框架,运行良好,我们喜欢它。我们希望将其连接到NHibernate,而不是依赖于NH的其他缓存实现之一 我已经编写了NHibernate.Cache.ICache的一个实现,它将我们的框架与NH连接起来。我的实现几乎完全基于以下内容: 我突然想到的一件事是,ICache接口中的缓存键属于object类型。我们的框架键是使用字符串的缓存。我注意到上面的Velocity实现只是对传递给Get(object key)和Put(object key)方法的key实例执行一个.ToStr

我们有自己的缓存框架,运行良好,我们喜欢它。我们希望将其连接到NHibernate,而不是依赖于NH的其他缓存实现之一

我已经编写了NHibernate.Cache.ICache的一个实现,它将我们的框架与NH连接起来。我的实现几乎完全基于以下内容:

我突然想到的一件事是,ICache接口中的缓存键属于object类型。我们的框架键是使用字符串的缓存。我注意到上面的Velocity实现只是对传递给Get(object key)和Put(object key)方法的key实例执行一个.ToString()。这让我有点紧张

在我的测试中,“key”对象的类型是string,它是实体名

我的问题是:

  • 对键实例盲目调用.ToString()是否是一种安全的方法(我正在检查null)
  • 如果这个实现确实是安全的,这是否意味着它总是一个字符串
  • 如果这总是一个字符串,那么为什么它是object类型
NH的人比我聪明,所以它是object类型的,这让我觉得这里缺少了一些东西。我真的不想在我的缓存实现中引入一些模糊的、随机的会话管理错误,这些错误会导致密钥使用不安全


任何指导都将不胜感激-干杯

我在这里没有得到任何回复,也没有在NH用户组线程上得到任何回复[1]。我已经得出结论,在我们的自定义实现中调用key.ToString()是安全的,但很遗憾,我没有得到一些关于这方面的官方指导:(

有关更多详细信息,请参阅用户组线程

干杯


[1]

我在这里和NH用户组线程[1]上都没有得到任何响应。我得出结论,在我们的自定义实现中调用key.ToString()是安全的,但很遗憾,我没有得到一些关于这方面的官方指导:(

有关更多详细信息,请参阅用户组线程

干杯

[1]