Перенос методов Handles (HttpApplication) с VB.NET на C#?

Я переношу некоторый код с VB.NET на С# (4.0).

Я нахожу такие структуры, как:

Private Sub WhitePointHttpApplicationBase_BeginRequest(sender As Object, e As System.EventArgs) Handles Me.BeginRequest

End Sub

Как проще всего перевести такое поведение на С#?


person Mohammed Qamhawi    schedule 16.02.2013    source источник
comment
Где вы его нашли?   -  person Tim Schmelter    schedule 17.02.2013
comment
Я пытаюсь создать собственный метод из HttpApplication.BeginRequest. Но я не знаю, как перенести методы Handles (HttpApplication) с VB.NET на C#?   -  person Mohammed Qamhawi    schedule 17.02.2013


Ответы (1)


В конструкторе добавляем this.BeginRequest+=WhitePointHttpApplicationBase_BeginRequest;

Вам также потребуется, чтобы метод существовал: private void WhitePointHttpApplicationBase_BeginRequest(sender As Object, e As System.EventArgs) { //Your event code here }

Ниже приведен ваш код из комментария с исправлениями:

namespace WhitePoint.Solutions.Web 
{ 
    public abstract class WhitePointHttpApplicationBase : HttpApplication { 

        protected WhitePointHttpApplicationBase()
        {
            this.BeginRequest += WhitePointHttpApplicationBase_BeginRequest; 
        }
        #region "Member" 
        #endregion 

        private void WhitePointHttpApplicationBase_BeginRequest(object sender, EventArgs e) { } 
    } 
} 

this.BeginRequest += не было в конструкторе.

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

person Jonathon Page    schedule 17.02.2013
comment
У меня есть следующая ошибка: WhitePointHttpApplicationBase_BeginRequest — это метод, но он используется как тип - person Mohammed Qamhawi; 17.02.2013
comment
Надеюсь, редактирование поможет прояснить, что требуется. - person Jonathon Page; 17.02.2013
comment
все еще у меня та же ошибка: this.BeginRequest+=WhitePointHttpApplicationBase_BeginRequest; private void WhitePointHttpApplicationBase_BeginRequest (отправитель объекта, EventArgs e) { } - person Mohammed Qamhawi; 18.02.2013
comment
Без возможности видеть контекст вашего кода трудно предоставить вам конкретную помощь. Если вы поместили this.BeginRequest += WhitePointHttpApplicationBase_BeginRequest; в конструктор вашего класса, и этот класс имеет метод, который вы показали в своем комментарии, все должно работать как положено. Предоставьте дополнительный контекст, и я помогу вам дальше. - person Jonathon Page; 18.02.2013
comment
Полный код: ‹pre› ‹code›namespace WhitePoint.Solutions.Web { public abstract class WhitePointHttpApplicationBase : HttpApplication { #region Member #endregion this.BeginRequest += WhitePointHttpApplicationBase_BeginRequest; private void WhitePointHttpApplicationBase_BeginRequest (отправитель объекта, EventArgs e) { } } }‹/code›‹/pre› - person Mohammed Qamhawi; 18.02.2013
comment
Я отредактировал свои ответы, чтобы показать исправления, необходимые для вашего кода. - person Jonathon Page; 18.02.2013
comment
Большое спасибо, Джонатан Пейдж. С Уважением - person Mohammed Qamhawi; 18.02.2013