これは実際には2つの部分からなる質問です。まず、HttpContext.Currentは現在のSystem.UI.Pageオブジェクトに対応していますか?
そして、おそらく最初の質問に関連する2番目の質問は、現在のページがインターフェイスを実装しているかどうかを確認するために、次の質問を使用できない理由です。
private IWebBase FindWebBase()
{
if (HttpContext.Current as IWebBase != null)
{
return (IWebBase)HttpContext.Current.;
}
throw new NotImplementedException("Crawling for IWebBase not implemented yet");
}
一般的なコンテキストでは、一部のコントロールは、SharePoint Webパーツとして実行されているのか、Asp.Netフレームワークの一部として実行されているのかを知る必要があります。
コントロールにそれ自体への参照を渡すように要求し、コントロールのPageプロパティを確認することで問題を解決しましたが、上記が機能しない理由についてはまだ興味があります。
コンパイラエラーは次のとおりです。参照変換、ボックス化変換、ボックス化解除変換、ラッピング変換、またはnull型変換を介してSystem.Web.HttpContextを... IWebBaseに変換できません。