У меня есть веб-пользовательский элемент управления, он обслуживает некоторые потенциально интенсивные вычисления данных, и я хотел бы, чтобы он выводился в кэше, чтобы при каждом просмотре страницы данные не пересчитывались. Он находится на очень часто просматриваемых страницах, поэтому очень важно, чтобы он работал правильно!
Для контекста он используется в нашей аркаде: 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 с помощью элемента управления.