Я реализую интерфейс IDistributedCache через DI в моем приложении, и он работает как положено.
Единственная проблема заключается в том, что, поскольку это кеш, общий для всего приложения, разработчик, пишущий кеширующий код, может не обязательно знать, какие ключи использовались в остальной части приложения (или, возможно, даже в других приложениях, подключающихся к тому жераспределенный кеш). Например, допустим, я хочу кешировать пользователей с помощью ключа: «UserId: {userId}». Другой разработчик в другом модуле решает, что он также хочет кешировать пользователей, и он предлагает тот же ключ. Разве эти два не будут конфликтовать друг с другом?
Я надеялся, что есть что-то похожее на шаблон ILogger, где вы можете разрешить ILogger, только указав тип категории. Точно так же в IDistributedCache «префикс ключа» будет автоматически введен, таким образом решая такие потенциальные конфликтные проблемы.
В конструкторе DI вы можете делать такие вещи:
public MyClass(IDistributedCache<GlobalCache> globalCache, IDistributedCache<MyClass> myClassCache) { ... }
«GlobalCache» - это класс, который вам нужно создать, что неудобно ... но я простопытаясь придумать вслух, чтобы кто-то мог предложить альтернативные идеи для решения этой проблемы.