我们有自己的缓存框架,运行良好,我们喜欢它。我们想把它连接到NHibernate而不是依赖于NH的其他缓存实现之一。
我编写了NHibernate.Cache.ICache的实现,它将我们的框架与NH连接起来。我的实现几乎完全基于此:
直接跳出来的一件事就是ICache界面中的缓存键属于object类型。我们的框架密钥是使用字符串的缓存。我注意到上面的Velocity实现只是在传递给Get(对象键)和Put(对象键)方法的键实例上执行.ToString()。这让我有些紧张。
在我的测试中,似乎“key”对象的类型为string,它是实体名称。
我的问题:
NH家伙比我聪明,所以它是类型对象的事实让我觉得我在这里缺少一些东西。我真的不想在我的缓存实现中引入一些模糊的,随机的会话管理错误以及不安全的密钥用法。
任何指导都将受到赞赏 - 干杯
答案 0 :(得分:1)
我在这里没有得到任何回复,也没有得到NH用户组线程[1]。我已经得出结论,在我们的自定义实现中调用key.ToString()是安全的,但我很难过,我没有得到关于此的官方指导:(
有关详细信息,请参阅用户组线程。
干杯