正在用缓存类设置我的基类

本文关键字:设置 我的 基类 缓存 | 更新日期: 2023-09-27 18:29:02

我正在尝试使用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();
        }

    }

正在用缓存类设置我的基类

您可能应该阅读更多关于基本C#语法的内容。参数可以来自派生构造函数中的参数,也可以使用静态字段、属性或方法构建它。第一个示例显示了来自派生构造函数的基参数。第二个示例显示了静态方法的使用。

public TweetSearchCache(SingleUserAuthorizer auth) : base(auth) {
// ...
}

public TweetSearchCache() : base(CreateAuth()) {
// ...
}
public static SingleUserAuthorizer CreateAuth() {
    SingleUserAuthorizer createdAuth = ...
    // ...
    return createdAuth;
}