Na verdade, esta é uma questão de duas partes. Primeiro, o HttpContext.Current corresponde ao objeto System.UI.Page atual?
E a segunda pergunta, que provavelmente está relacionada à primeira, é por que não posso usar o seguinte para ver se a página atual implementa uma interface:
private IWebBase FindWebBase()
{
if (HttpContext.Current as IWebBase != null)
{
return (IWebBase)HttpContext.Current.;
}
throw new NotImplementedException("Crawling for IWebBase not implemented yet");
}
O contexto geral é que alguns controles precisam saber se estão sendo executados como uma webpart do SharePoint ou como parte de uma estrutura Asp.Net.
Resolvi o problema exigindo que o controle passasse uma referência para si mesmo e verificando a propriedade Page do controle, mas ainda estou curioso para saber por que o acima não funciona.
O erro do compilador é: Não é possível converter System.Web.HttpContext em ... IWebBase por meio de uma conversão de referência, conversão de boxing, conversão de unboxing, conversão de empacotamento ou conversão de tipo nulo.