在下面的函数中,我想缓存一个数据并将其存储到缓存内存中,从服务中获取数据。
我不知道如何检查数据是否存在于缓存中,如果假设数据存在于缓存中,那么我不想调用webservice只显示存在于缓存内存中的数据。
public string EmployeeNames
{
get
{
var employeenames = System.Runtime.Caching.MemoryCache.Default["EmployeeNames"];
// getting data from web service one bye one and storing into employeenames
employeenames = AccountModel.EmployeeNames(EmployeeInfo);
System.Runtime.Caching.MemoryCache.Default["EmployeeNames"] = employeenames;
return employeenames.ToString();
}
}
您可以使用MemoryCache检查它。包含
,用于确定缓存中是否存在缓存项,如果存在,则使用获取方法获取它,该方法将返回缓存中存储的任何值。如果没有得到,它将返回一个空值。
var cache = System.Runtime.Caching.MemoryCache;
if (cache != null && cache.Contains("EmployeeNames"))
{
var EmployeeNames = cache.Get("EmployeeNames");
}
更多关于MemoryCache的信息。包含
-https://docs.microsoft.com/en-us/dotnet/api/system.runtime.caching.memorycache.contains?view=dotnet-平台扩展6.0
你可以打电话
var employeenames = MemoryCache.Default.Get("EmployeeNames");
如果缓存中不存在该项,则返回null。
您可以使用包含
查看项目是否存在:
if(MemoryCache.Default.Contains("EmployeeNames"))
但尽管不太可能,但有可能包含
将返回"true",但当您检索该项时,该项将不会在缓存中。所以我只是获取它,看看它是否为空,如果你不想检索它,只使用包含它。