Esta es en realidad una pregunta de dos partes. Primero, ¿HttpContext.Current corresponde al objeto System.UI.Page actual?
Y la segunda pregunta, que probablemente esté relacionada con la primera, es por qué no puedo usar lo siguiente para ver si la página actual implementa una interfaz:
private IWebBase FindWebBase()
{
if (HttpContext.Current as IWebBase != null)
{
return (IWebBase)HttpContext.Current.;
}
throw new NotImplementedException("Crawling for IWebBase not implemented yet");
}
El contexto general es que algunos controles necesitan saber si se están ejecutando como un elemento web de SharePoint o como parte de un marco Asp.Net.
Resolví el problema requiriendo que el control pase una referencia a sí mismo y verificando la propiedad Page del control, pero todavía tengo curiosidad por saber por qué lo anterior no funciona.
El error del compilador es: No se puede convertir System.Web.HttpContext a ... IWebBase mediante una conversión de referencia, conversión de caja, conversión de caja, conversión de envoltura o conversión de tipo nulo.