Это мой первый пост здесь.
Я написал CMS, которая позволяет разработчикам писать свои собственные плагины в форме WebUserControls. Эти плагины могут быть вставлены (через TinyMCE) в контент пользователями. Это делается программно с использованием метода LoadControl, добавляющего в иерархию элементов управления и устанавливающего его свойства. Пока все хорошо.
Я хочу разрешить разработчикам использовать OutputCache в своих элементах управления WebUserControl, однако эти элементы управления необходимо кэшировать с помощью свойств элемента управления WebUserControl. например разработчик написал файл WebUserControl color.ascx, который имеет свойство Color (Red | Green | Blue), поэтому в зависимости от значения этого свойства кеш может хранить красную, зеленую и синюю версии.
Моя проблема заключается в том, что на странице может быть несколько, скажем, три элемента управления color.ascx (красный, зеленый и синий), динамически загружаемых с помощью LoadControl. После кэширования метод LoadControl правильно возвращает PartialCachingControl, но при обновлении страницы это всегда последняя версия из кеша, то есть на странице отображается 3 синих цвета вместо красного, зеленого и синего.
Есть ли способ с помощью LoadControl (или каким-либо другим способом) загрузить правильную версию из кеша, то есть с помощью свойства Color, и как мне использовать OutputCache, чтобы гарантировать, что он сохраняется в кеш на основе свойств WebUserControls?
Спасибо за вашу помощь.