Я пытаюсь сохранить некоторые объекты в моем приложении в Cache Memory и повторно использовать их при необходимости.
Я создал класс Cache Helper, в котором я буду выполнять все связанные функции, такие как проверкакэширование и возврат данных из кэша и некоторые другие функции.
В основном я пытаюсь кэшировать возвращенные данные службы WCF.
My consumer code for adding data to cache:
//input- is input parameters
var data= WCFService.GetDetails(input);
//var i = (RealTimeObject)details; // Unboxing
//Helper.AddToCache(cacheKeyName, i);
Helper.AddCache(cacheKeyName, data);
Helper.cs Метод AddCache:
public void AddCache(string key, object data)
{
if (cache == null) return;
var absoluteExpiration = DateTime.Now.AddSeconds(300);
cache.Add(key, data, null, absoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, null);
}
Таким образом, когда служба возвращает некоторые данные (есть два списка), она будет присвоена переменной данных и будет добавлена в кэш, но в нашей бизнес-логике мы делаем некоторые элементы, которые есть в данных, нулевымитак что это влияет и на кэшированные данные, так как мы храним их, используя ссылку.Так что любой, как любая идея, как мы можем клонировать возвращенные данные wcf и хранить их в кеше, или любая идея обработки их любым другим способом, будут оценены.Пожалуйста, дайте мне знать, если я что-то пропустил, чтобы я мог дать больше деталей.Спасибо.
Отредактировано: почему обычная распаковка и изменение его в качестве типа значения также не работает в этом случае?