Questa è in realtà una domanda in due parti. Innanzitutto, HttpContext.Current corrisponde all'oggetto System.UI.Page corrente?
E la seconda domanda, che è probabilmente correlata alla prima, è perché non posso usare quanto segue per vedere se la pagina corrente implementa un'interfaccia:
private IWebBase FindWebBase()
{
if (HttpContext.Current as IWebBase != null)
{
return (IWebBase)HttpContext.Current.;
}
throw new NotImplementedException("Crawling for IWebBase not implemented yet");
}
Il contesto generale è che alcuni controlli devono sapere se vengono eseguiti come webpart di SharePoint o come parte di un framework Asp.Net.
Ho risolto il problema richiedendo al controllo di passare un riferimento a se stesso e controllando la proprietà Page del controllo, ma sono ancora curioso del motivo per cui quanto sopra non funziona.
L'errore del compilatore è: Impossibile convertire System.Web.HttpContext in ... IWebBase tramite una conversione di riferimento, conversione boxing, conversione unboxing, conversione wrapping o conversione di tipo null.