0

我在 Web 表单应用程序中有一个静态页面方法,我想从中调用私有类级别变量的方法,如下所示。我正在使用 jQuery 来调用页面方法。

private readonly ICatalogBLL _catalogBLL = new CatalogBLL();

protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
  {
    _catalogBLL.GetSomething();
  }
}

[WebMethod]
public static UpdateSomething(int i)
{
   //Want to do as below. But can't call it from a static method.
   _catalogBLL.UpdateSomething();
}

更新
如果我按照 John Saunders 所说的那样称呼它,它不会像在静态方法中那样对来自不同用户的请求使用相同的实例吗?

4

2 回答 2

4

你不能。页面方法是静态的。您_catalogBLL是实例成员。

但是,既然您CatalogBLL在每个请求上都创建了一个新实例,为什么不再这样做一次呢?

[WebMethod]
public static UpdateSomething(int i)
{
   CatalogBLL catalogBLL = new CatalogBLL();
   catalogBLL.UpdateSomething();
}
于 2010-07-12T06:18:08.520 回答
1

你不能打电话,因为页面方法是静态的......

静态方法只是与其包含类的任何实例无关的方法。更常见的替代方法是实例方法,该方法的结果取决于其所属类的特定实例的状态。

看看约翰桑德的答案..

于 2010-07-12T06:20:18.293 回答