Ответ 1
ObjectCache - это абстрактный класс, который демонстрирует, как вы должны создавать кэш, который придерживается правил, которые человек, который написал ObjectCache, хочет подчиниться. Вы не можете напрямую создавать ObjectCache, поскольку это аннотация.
MemoryCache - это фактическая реализация ObjectCache.
Из документации:
Представляет кеш объекта и предоставляет базовые методы и свойства для доступа к кешу объекта.
Представляет тип, который реализует кеш в памяти.
Глядя на объявление для MemoryCache:
public class MemoryCache : ObjectCache,
IEnumerable, IDisposable
Мы можем видеть, что MemoryCache наследуется от ObjectCache, то есть является кешем для объектов, которые используют память в качестве своего хранилища - поэтому это реализация ObjectCache.
Вы можете написать свой собственный; например, DatabaseCache, который также может наследоваться от ObjectCache, но вместо этого он будет использовать базу данных в качестве хранилища резервных копий.
Для повседневного использования, если оно отвечает вашим потребностям, вы будете использовать и потреблять MemoryCache. Если вы хотите написать свой собственный, вы можете наследовать от ObjectCache и реализовать необходимые методы и свойства. Однако на самом деле, вероятно, мало практической пользы для этого, поскольку Microsoft уже сделала несколько других решений для кеширования, как и многие другие поставщики.