C'est en fait une question en deux parties. Tout d'abord, le HttpContext.Current correspond-il à l'objet System.UI.Page actuel?
Et la deuxième question, qui est probablement liée à la première, est pourquoi je ne peux pas utiliser ce qui suit pour voir si la page actuelle implémente une interface:
private IWebBase FindWebBase()
{
if (HttpContext.Current as IWebBase != null)
{
return (IWebBase)HttpContext.Current.;
}
throw new NotImplementedException("Crawling for IWebBase not implemented yet");
}
Le contexte général est que certains contrôles doivent savoir s'ils s'exécutent en tant que composant WebPart SharePoint ou en tant que partie d'un framework Asp.Net.
J'ai résolu le problème en exigeant que le contrôle passe une référence à lui-même et en vérifiant la propriété Page du contrôle, mais je suis toujours curieux de savoir pourquoi ce qui précède ne fonctionne pas.
L'erreur du compilateur est la suivante: Impossible de convertir System.Web.HttpContext en ... IWebBase via une conversion de référence, une conversion de boxe, une conversion de déballage, une conversion d'encapsulation ou une conversion de type nul.