我正在使用 RestSharp 为所有 CRUD 操作重复调用 Web Api。现在我正在做什么,RestClient 最终被包装到缓存对象中。这很糟糕/导致它变慢吗?
public class ReferenceDS:IReferenceDS
{
private static readonly RestClient Client = AppConfiguration.RestClient();
private static readonly string apiPath = "api/Reference/";
public List<AcademicLevel> GetAcademicLevels()
{
var request = new RestRequest(apiPath + "GetAcademicLevels", Method.GET) { RequestFormat = DataFormat.Json };
var response = Client.Execute<List<AcademicLevel>>(request);
return response.Data;
}
public List<Content> GetContent()
{
var request = new RestRequest(apiPath + "GetContent", Method.GET) { RequestFormat = DataFormat.Json };
var response = Client.Execute<List<Content>>(request);
return response.Data;
}
//.......
}
现在您看到AppConfiguration被调用
这就是我正在做的
public static RestClient RestClient() {
ObjectCache cache = MemoryCache.Default;
if (cache["RestClient"] == null)
{
string url = GetAppSetting("WebAPIurl");
var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(CacheExpireMinutes()) };
RestClient client = new RestClient(url);
cache.Add("RestClient", client, policy);
}
return (RestClient)cache["RestClient"];
}
这是做这件事的坏方法吗?ObjectCache / MemoryCache / CacheItemPolicy 等。 ?