这实际上是一个两部分问题.首先,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");
}
Run Code Online (Sandbox Code Playgroud)
一般上下文是某些控件需要知道它们是作为SharePoint Webpart执行还是作为Asp.Net框架的一部分执行.
我通过要求控件传递对自身的引用,并检查控件的Page属性来解决问题,但我仍然很好奇为什么上面的方法不起作用.
编译器错误是:无法通过引用转换,装箱转换,拆箱转换,包装转换或空类型转换将System.Web.HttpContext转换为... IWebBase.
我在default.aspx.cs文件中声明了一个WebMethod.
[WebMethod]
public static void ResetDate()
{
LoadCallHistory(TheNewDate.Date);
}
Run Code Online (Sandbox Code Playgroud)
为什么必须将WebMethod方法声明为静态?