Я пытаюсь создать класс кеша, используя пример Ardalis http://ardalis.com/introducing-the-cachedrepository-pattern
Я получаю сообщение об ошибке, в котором говорится, что аргументы отсутствуют. Я могу понять, как пройти верхнюю часть.
В кеш-части класса нет ошибок, и базовый класс работает
Что я делаю не так в верхней части класса репозитория. Как я наследую неправильно.
Спасибо за любую помощь.
Класс репозитория с проблемой
public class TweetSearchCache : TweetSearch
{
// SingleUserAuthorizer auth;
public TweetSearchCache() : base //(SingleUserAuthorizer auth)
{
}
private static readonly object CacheLockObject = new object();
public override List<Search> GetTweets()
{
string cacheKey = "GetSearch";
var result = HttpRuntime.Cache[cacheKey] as List<Search>;
if (result == null)
{
lock (CacheLockObject)
{
result = HttpRuntime.Cache[cacheKey] as List<Search>;
if (result == null)
{
result = base.GetTweets().ToList();
HttpRuntime.Cache.Insert(cacheKey, result, null,
DateTime.Now.AddMinutes(2), TimeSpan.Zero);
}
}
}
return result;
}
}
Базовый класс
public class TweetSearch
{
private readonly SingleUserAuthorizer _auth;
public TweetSearch(SingleUserAuthorizer auth)
{
_auth = auth;
}
public virtual List<Search> GetTweets()
{
string hashTerm = "#searchterm";
string rejectedWords = "Searchterm";
using (var twitterCtx = new TwitterContext(_auth))
{
var queryResults = (from search in twitterCtx.Search
where search.Type == SearchType.Search &&
search.Hashtag == hashTerm ||
// search.Query == twitQuery ||
// search.WordPhrase == twitPhrase ||
search.WordNot == rejectedWords &&
search.ShowUser == true &&
search.IncludeEntities == true &&
search.Locale == "EN" &&
search.PageSize == 100
select search).ToList();
return queryResults;//.ToList();
}
}