Đây thực sự là một câu hỏi gồm hai phần. Đầu tiên, HttpContext.Current có tương ứng với đối tượng System.UI.Page hiện tại không?
Và câu hỏi thứ hai, có thể liên quan đến câu hỏi đầu tiên, là tại sao tôi không thể sử dụng phần sau để xem liệu trang hiện tại có triển khai giao diện hay không:
private IWebBase FindWebBase()
{
if (HttpContext.Current as IWebBase != null)
{
return (IWebBase)HttpContext.Current.;
}
throw new NotImplementedException("Crawling for IWebBase not implemented yet");
}
Bối cảnh chung là một số điều khiển cần biết liệu chúng đang thực thi dưới dạng phần mềm web SharePoint hay là một phần của khung Asp.Net.
Tôi đã giải quyết vấn đề bằng cách yêu cầu điều khiển chuyển một tham chiếu đến chính nó và kiểm tra thuộc tính Trang của điều khiển, nhưng tôi vẫn tò mò tại sao ở trên không hoạt động.
Lỗi trình biên dịch là: Không thể chuyển đổi System.Web.HttpContext thành ... IWebBase thông qua chuyển đổi tham chiếu, chuyển đổi quyền anh, chuyển đổi mở hộp, chuyển đổi gói hoặc chuyển đổi kiểu null.