Я интегрирую IMemoryCache в проект и изо всех сил стараюсь убедиться, что ключи в каждом хранилище или провайдере не конфликтуют (т. Е. Придумывают пространство ключей). Но потом мне пришло в голову, почему бы просто не предоставить каждому репозиторию / провайдеру свой собственный одноэлементный экземпляр IMemoryCache - то есть именованный одноэлементный. Это гарантирует, что ключи никогда не будут конфликтовать, и один репозиторий никогда не сможет получить доступ к внутреннему состоянию другого репозитория. Моя примитивная сторона также говорит, что это может улучшить производительность, потому что теперь каждый репозиторий не конкурирует за внутренние блокировки IMemoryCache.
Но я не собираюсь притворяться, что понимаю, как IMemoryCache управляет всей своей логикой. Возможно, важно иметь одноэлементный экземпляр для всего приложения, чтобы он мог более эффективно управлять временем жизни записей в кэше.
По сути, я никогда не видел, чтобы кто-нибудь использовал шаблон синглтон на репозиторий с IMemoryCache, поэтому я жду отзывов об этом подходе.
Спасибо