代码之家  ›  专栏  ›  技术社区  ›  IsmailS

从PageMethods调用业务逻辑层方法

  •  0
  • IsmailS  · 技术社区  · 14 年前

    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();
    }
    

    更新

    2 回复  |  直到 14 年前
        1
  •  4
  •   John Saunders    14 年前

    你不能。page方法是静态的。你的 _catalogBLL

    CatalogBLL 对于每一个请求,为什么不再这样做一次呢?

    [WebMethod]
    public static UpdateSomething(int i)
    {
       CatalogBLL catalogBLL = new CatalogBLL();
       catalogBLL.UpdateSomething();
    }
    
        2
  •  1
  •   ACP    14 年前

    无法调用,因为pagemethods是静态的。。。

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

    看看约翰·桑德的回答。。