内部方法中的AspNetCacheProfile属性

时间:2013-11-18 13:13:13

标签: c# asp.net .net web-applications asp.net-web-api

我有一个api方法,可以在应用程序启动时获取大量数据。 90%的数据与所有应用程序用户相关,另外10%需要通过用户ID及其环境和应用程序版本进行更改。 为避免每次用户连接时调用第一种方法并使启动速度变慢, 我补充说:AspNetCacheProfile属性。 但在这种情况下,我不能使用此方法的用户ID,环境和版本 因为它是第一个叫做方法的用户的数据。

所以, 我添加了新方法(第二个)并在其上面设置了AspNetCacheProfile属性 并从第一个方法调用此方法。 这样我可以缓存一般数据并更新每次调用的其他10%。

我只是想知道..它会起作用吗? 我不确定,因为第二种方法没有直接调用,它是从第一种方法调用的。

           [WebGet(UriTemplate = "/GetData")]
           public APIResponse GetData()
           {
                try
                {
                    MyCachedResponse = GetMyCachedResponse();

                    foreach (var info in data.info)
                    {
                        if (Something)
                        { 
                           // Update some specific values inside
                        }               
                    }

                    AppState.CurrentResponse.Data = data;
                }

                return AppState.CurrentResponse;
            }

            [AspNetCacheProfile("OneMinuteCaching")]
            private MyCachedResponse GetMyCachedResponse()
            {
                return new MyCachedResponse(categories);
            }

0 个答案:

没有答案