Наследование обработчиков событий в C#

Решение на основе mod-rewrite:

Используя следующий код в htaccess, автоматически пересылает все HTTP-запросы на https.

RewriteEngine on

RewriteCond %{HTTPS}::%{HTTP_HOST} ^off::(?:www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]

Это перенаправит ваши не-www и www http запросы на www-версию https.

Другое решение (Apache 2.4 *)

RewriteEngine on

RewriteCond %{REQUEST_SCHEME}::%{HTTP_HOST} ^http::(?:www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]

Это не работает в более низких версиях apache, поскольку переменная% {REQUEST_SCHEME} была добавлена ​​в mod-rewrite с 2.4.

12
задан Merus 18 September 2008 в 07:06
поделиться

6 ответов

Объявите родительский виртуальный метод, переопределите его в дочерних классах и вызове

base.checkReadyness(sender, e);

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

Одна вещь, которую я отметил, состоит в том что, если весь этот код помещается в dll, то Вы могли бы испытать хит производительности, пытающийся назвать обработчик событий из dll.

7
ответ дан 2 December 2019 в 21:24
поделиться

Для почему бы не объявления метода как виртуального в родительском классе и затем можно ли переопределить его в производных классах для добавления дополнительной функциональности?

0
ответ дан 2 December 2019 в 21:24
поделиться

Если Ваше событие уже определяется в Вашем родительском классе, Вы не должны повторно соединять его проводом снова в Вашем дочернем классе. Это заставит событие стрелять дважды.

Действительно проверьте, является ли это тем, что происходит. HTH :)

0
ответ дан 2 December 2019 в 21:24
поделиться

Эта статья о MSDN должна быть пользой начальные точки: Переопределение Обработчиков событий с Visual Basic.NET. Смотрите на, Как Пункт Дескрипторов Может Вызвать проблемы в разделе Derived Class.

0
ответ дан 2 December 2019 в 21:24
поделиться

Я только что столкнулся с этим также, я соглашаюсь, что такое чувство выполнению всего правильно. Объявление виртуального метода является обходным решением в лучшем случае не решением.

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

Совершенно определенно это не виртуальный метод - я не хочу, чтобы метод был переопределяемым производным классом. Очень печальный, и по-моему, ошибка в dev-студии.

3
ответ дан 2 December 2019 в 21:24
поделиться

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

0
ответ дан 2 December 2019 в 21:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: