我还是新人所以请耐心等待我。我看了,搜查过,用Google搜索过,但是我的大脑现在有点油炸了:(。
一个简单的ASP.NET MVC项目,它使用搜索框在youtube和opendb上查找信息。正在收集此信息并将其放入我的电影对象中。
public ActionResult Search(string query)
{
movielist = new List<Movie>();
TrailerApi _trailerapi = new TrailerApi();
movielist.Add(_trailerapi.GetTrailerInformation(query));
return View(movielist);
}
不幸的是,我没有得到理想的结果。而是缓存不断填充新对象(空电影对象),我希望它继续添加对象。
我希望缓存我在缓存对象中找到的每个结果,并且能够首先在此缓存中查找我的电影,然后开始使用我的API。 因此,假设我首先寻找玩具故事,然后是功夫熊猫和最后一次星际迷航,我的缓存将包含所有3部电影。
我很确定这个人有我想要的东西,我喜欢他优雅的解决方案。
http://www.dotnetcurry.com/aspnet-mvc/1246/inmemory-caching-aspnet-mvc-6-core
但是因为我是一个菜鸟,我无法打开他的项目并得到这个错误 https://postimg.org/image/9z5u52vt5/
我创建了一个CacheHelper类
public static class CacheHelper
{
public static object GetValue(string key)
{
MemoryCache memoryCache = MemoryCache.Default;
return memoryCache.Get(key);
}
public static bool Add(string key, object value, DateTimeOffset expr)
{
MemoryCache memoryCache = MemoryCache.Default;
return memoryCache.Add(key, value, absExpiration);
}
public static void Delete(string key)
{
MemoryCache memoryCache = MemoryCache.Default;
if (memoryCache.Contains(key))
{
memoryCache.Remove(key);
}
}
}
然后我尝试在我的控制器中执行此操作
movielist = new List<Movie>();
TrailerApi _trailerapi = new TrailerApi();
movielist.Add(_trailerapi.GetTrailerInformation(query));
CacheHelper.Add("movies", movielist, `DateTimeOffset.UtcNow.AddHours(1));
return View(movielist);