На самом деле это вопрос из двух частей. Во-первых, соответствует ли 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 с помощью преобразования ссылки, преобразования упаковки, преобразования распаковки, преобразования упаковки или преобразования нулевого типа.