C# 使用缓存类设置我的基类
我试图使用Ardalis示例构建一个缓存类 我得到的错误是它没有参数。我能想出如何通过顶部 类的缓存部分没有错误,基类可以工作 我在复课的上半部分做错了什么。我怎么继承错了 谢谢你的帮助 解决此问题的存储库类C# 使用缓存类设置我的基类,c#,asp.net-mvc-3,base-class,C#,Asp.net Mvc 3,Base Class,我试图使用Ardalis示例构建一个缓存类 我得到的错误是它没有参数。我能想出如何通过顶部 类的缓存部分没有错误,基类可以工作 我在复课的上半部分做错了什么。我怎么继承错了 谢谢你的帮助 解决此问题的存储库类 public class TweetSearchCache : TweetSearch { // SingleUserAuthorizer auth; public TweetSearchCache() : base //(SingleUserAuthoriz
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;
}