ASP.net Как вывести в кеш элемент управления веб-пользователем в общедоступных свойствах элементов управления

У меня есть веб-пользовательский элемент управления, он обслуживает некоторые потенциально интенсивные вычисления данных, и я хотел бы, чтобы он выводился в кэше, чтобы при каждом просмотре страницы данные не пересчитывались. Он находится на очень часто просматриваемых страницах, поэтому очень важно, чтобы он работал правильно!

Для контекста он используется в нашей аркаде: http://www.scirra.com/arcade/action/93/8-bits-runner

Щелкните статистику, данные для графиков и статистики генерируются из этого элемента управления веб-пользователем.

Начало элемента управления выглядит следующим образом:

public partial class Controls_Arcade_Data_ArcadeChartData : System.Web.UI.UserControl
{
    public int GameID { get; set; }
    public Arcade.ChartDataType.ChartType Type { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {

Теперь у меня возникшая трудность заключается в том, что кэш вывода должен зависеть как от GamID, так и от ChartType.

Этот элемент управления повторно используется с множеством различных комбинаций GameID и типов, он мне нужен для создания кеша для каждого из них, но я изо всех сил пытаюсь понять, как это сделать.

Например, одна аркадная игра может пройти в GameID = 93 и Type = GraphData , другая может быть GameID = 41 и Type = TotalPlaysData , а другой может быть GameID = 93 , но Type = TotalPlaysData . Все они должны возвращать разные данные и иметь разные кэши вывода.

Элемент управления используется на странице игр вроде этого (параметры фактически задаются в коде программной части)

Total Plays:


Total Guest Plays:
etc.

Любая помощь приветствуется! Я потратил некоторое время на поиски в Интернете, и мне все время приходило в голову что-то, что мне нужно решить, но я не могу понять это.

Изменить

Изменить: Я пробовал добавить эту строку в свой элемент управления:

Но это просто вызывает ошибку Ссылка на объект не установлена ​​на экземпляр объекта. в строке, где GameID впервые устанавливается на странице ASPX с помощью элемента управления.

5
задан Tom Gullen 22 December 2011 в 14:43
поделиться