1

Problème: Je ne parviens pas à utiliser OutputCaching avec mes contrôles dérivés de MyCustomControl. Les contrôles sont chargés dynamiquement en utilisant les définitions de la base de données avec la méthode Page.LoadControl.InvalidCastException: System.Web.UI.PartialCachingControl -> MyCustomControl lorsque OutputCaching

Quand j'ajoute à ASCX <% @ OutputCache VaryByParam = "*" Durée = "3600" %> le "InvalidCastException: System.Web.UI.PartialCachingControl -> MyCustomControl" exception est levée.

Je ne parviens pas à modifier l'assemblage qui contient une logique de contrôle de chargement dynamique. Y at-il un moyen de le réparer dans les contrôles dérivés?

La deuxième question porte sur la mise en cache des sorties natives et iis7 - résout-elle ce problème? (J'ai essayé de configurer plusieurs compteurs de performance et j'ai vu que le cache n'était pas atteint ...)

Répondre

0

Si vous chargez les contrôles dynamiquement, ils sont chargés en tant que System.Web.UI.PartialCachingControl.

Control control = Page.LoadControl("/somecontrol.ascx"); 
this.Controls.Add(control); 
MyCustomControl myControl = ((PartialCachingControl)control).CachedControl as MyCustomControl 

Ce comportement est exacty même dans IIS7