Вызов метода уровня бизнес-логики из PageMethods - PullRequest
0 голосов
/ 12 июля 2010

У меня есть статический метод страницы в приложении веб-формы, и я хочу вызвать метод из закрытой переменной уровня класса, как показано ниже.Я использую 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();
}

ОБНОВЛЕНИЕ Если я назову его, как сказал Джон Сондерс, не будет ли он использовать один и тот же экземпляр для запросов от разных пользователей, как в статическом методе?

Ответы [ 2 ]

4 голосов
/ 12 июля 2010

Вы не можете.Метод страницы является статическим.Ваш _catalogBLL является участником экземпляра.

Однако, поскольку вы создаете новый экземпляр CatalogBLL при каждом запросе, почему бы не сделать это еще раз?

[WebMethod]
public static UpdateSomething(int i)
{
   CatalogBLL catalogBLL = new CatalogBLL();
   catalogBLL.UpdateSomething();
}
1 голос
/ 12 июля 2010

Вы не можете вызвать, потому что методы страницы являются статическими ...

Статический метод - это просто метод, который не связан ни с одним экземпляром содержащего его класса.Более распространенной альтернативой является метод экземпляра, который является методом, результат которого зависит от состояния конкретного экземпляра класса, к которому он принадлежит.

Посмотрите на ответ Джона Сандера ..

...