これは実際には 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 に変換できません。