Ключевой вопрос по пользовательской реализации ICache - PullRequest
1 голос
/ 16 марта 2011

У нас есть собственная структура кэширования, которая работает хорошо, и нам это нравится.Мы хотели бы подключить его к NHibernate, а не брать зависимость одной из других реализаций кэширования для NH.

Я написал реализацию NHibernate.Cache.ICache, которая соединяет нашу инфраструктуру с NH.Я почти полностью основал свою реализацию на этом:

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

Одна вещь, которая сразу бросилась в глаза, - это ключи кеша в интерфейсе ICache типа объекта.Наш каркасный ключ - это кеш, использующий строки.Я заметил, что реализация Velocity, описанная выше, просто выполняет .ToString () для экземпляра ключа, который передается в методы Get (ключ объекта) и Put (ключ объекта).Это заставило меня немного нервничать.

В моем тестировании выяснилось, что "ключевой" объект имеет тип string и это имя сущности.

Мои вопросы:

  • Является ли слепой вызов .ToString () для ключевого экземпляра безопасным подходом (я проверяю на ноль)?
  • Если эта реализация действительно безопасна, значит ли это, что это всегда строка?
  • Если это всегда строка, то почему это объект типа?

Ребята из NH умнее меня, поэтому тот факт, что это объект типа, заставляет меня предположить, что здесь что-то не хватает,Я действительно не хочу вводить какую-то неясную, случайную ошибку управления сеансом с небезопасным использованием ключа в моей реализации кэша.

Любое руководство будет оценено - ура

1 Ответ

1 голос
/ 30 марта 2011

Я не получил ни одного ответа здесь, ни в ветке групп пользователей NH [1]. Я пришел к выводу, что вызов key.ToString () в нашей пользовательской реализации безопасен, но мне грустно, что я не получил каких-либо официальных указаний по этому вопросу:

См. Поток группы пользователей для получения более подробной информации.

Приветствия

[1] http://groups.google.com/group/nhusers/browse_thread/thread/6d47ab21e85eb9b7/988ad6046528e7bc?lnk=gst&q=Custom+Cache#988ad6046528e7bc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...