2

我正在使用 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 等。 ?

4

0 回答 0