Как добавить общий код (специально для методов, отмеченных WebMethod ())

У меня есть некоторые методы страницы ASP.NET и веб-службы WebMethod (), в которые я хотел бы добавить общий код. Например:

<WebMethod()> _
Public Function AddressLookup(ByVal zipCode As String) As Address
    #If DEBUG Then
        ' Simulate a delay
        System.Threading.Thread.Sleep(2000)
    #End If
    Return New Address()
End Function

В настоящее время у меня есть код #If Debug во всех моих методах WebMethod (), но я думаю, что должен быть лучший способ сделать это, не набирая код.

Есть ли способ определить, идет ли запрос к WebMethod в Application_EndRequest, чтобы я мог добавить этот проект задержки в целом?

Обратите внимание, что некоторые методы являются методами страницы, а некоторые - методами веб-службы.

Я также изучаю PostSharp, чтобы увидеть, может ли это привести к желаемым результатам.

slolife 22.01.2009 21:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
414
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете проверить URL-адрес запроса в Application_EndRequest, чтобы определить, является ли это вызовом веб-метода. Например. что-то вроде этого (извините, это на C#):

protected void Application_EndRequest(Object sender, EventArgs e)
{
  if (Request.Url.ToString().IndexOf("MyWebService.asmx") > 0)
  {
    // Simulate a delay
    System.Threading.Thread.Sleep(2000);
  }
}

Это хорошо ... см. Мою правку: некоторые методы - это PageMethods, а некоторые - из веб-службы, поэтому поиск asmx не улавливает все. Я должен был указать это с самого начала.

slolife 22.01.2009 21:27

Может быть, разделить методы страницы и методы веб-службы на две веб-службы? Затем вы можете проверить URL-адрес «MyWebService.asmx». В противном случае, я думаю, подход Мехрдада мог бы быть лучше.

M4N 22.01.2009 21:35

Инкапсулируйте код #if DEBUG в методе и пометьте его как <Conditional("DEBUG")>. Таким образом, вы просто пишете вызов метода в каждом <WebMethod>. Может быть полезно.

Другие вопросы по теме