Это на самом деле вопрос из двух частей. Во-первых, соответствует ли HttpContext.Current текущему объекту System.UI.Page?
И второй вопрос, который, вероятно, связан с первым, почему я не могу использовать следующее, чтобы увидеть, реализует ли текущая страница интерфейс:
private IWebBase FindWebBase()
{
if (HttpContext.Current as IWebBase != null)
{
return (IWebBase)HttpContext.Current.;
}
throw new NotImplementedException("Crawling for IWebBase not implemented yet");
}
Общий контекст заключается в том, что некоторым элементам управления необходимо знать, выполняются ли они как веб-часть SharePoint или как часть инфраструктуры Asp.Net.
Я решил проблему, потребовав, чтобы элемент управления передал ссылку на себя, и проверил свойство Page элемента управления, но мне все еще любопытно, почему вышеприведенное не работает.
Ошибка компилятора:
Невозможно преобразовать System.Web.HttpContext в ... IWebBase через преобразование ссылок, преобразование в бокс, распаковку без преобразования, преобразование с переносом или преобразование нулевого типа.