我有一个要求,我需要在内存中维护一个列表。
例如 -
list<products>
每个用户都将运行应用程序并从列表中添加新产品/更新产品/删除产品,所有更改都应反映在该列表中。
我正在尝试将列表存储在对象缓存中。
但是当我运行应用程序时,它会创建产品,但是当我第二次运行它时,列表不在缓存中。需要帮助。
以下是代码 -
public class ProductManagement
{
List<Productlist> _productList;
ObjectCache cache= MemoryCache.Default;
public int Createproduct(int id,string productname)
{
if (cache.Contains("Productlist"))
{
_productList = (List<Productlist>)cache.Get("Productlist");
}
else
{
_productList = new List<Productlist>();
}
Product pro = new Product();
pro.ID = id;
pro.ProductName = productname;
_productList.Add(pro);
cache.AddOrGetExisting("Productlist", _productList, DateTime.MaxValue);
return id;
}
public Product GetProductbyId(int id)
{
if (cache.Contains("Productlist"))
{
_productList = (List<Productlist>)cache.Get("Productlist");
}
else
{
_productList = new List<Productlist>();
}
var product = _productList.Single(i => i.ID == id);
return product;
}
}
即使应用程序未运行,我如何确保列表是持久的,这可能吗?还如何保持缓存处于活动状态并在下次检索相同的缓存。
非常感谢您的帮助。