Нет, нет.
, В первую очередь, Внедрение SQL является входной проблемой фильтрации, и XSS является выводом, выходящим из одного - таким образом, Вы даже не выполнили бы эти две операции одновременно в жизненный цикл кода.
Основные правила ползунка
mysql_real_escape_string()
) strip_tags()
, чтобы отфильтровать нежелательный Escape HTML htmlspecialchars()
и помнить 2-е и 3-и параметры здесь. Не видя кода, который вызывает SampleMethod, я предполагаю, что у вас есть объект типа B и вызовите для этого SampleMethod.
Замену можно выполнять в цепочке сколь угодно долго. Код, который вы показали, правильный.
Единственное возможное объяснение поведения, которое вы видите, состоит в том, что объект, на который вы ссылаетесь, на самом деле имеет тип B
. Я предлагаю вам дважды проверить это и, если что-то по-прежнему не имеет смысла, опубликовать другой подходящий код.
Точка останова, скорее всего, не будет достигнута, потому что вы фактически создали экземпляр класса «B» .
Разрешение переопределения метода работает на основе фактического типа времени выполнения класса, метод которого должен быть вызван. Итак, если у вас был следующий код:
C c = new C();
c.SampleMethod();
и следующее:
Это решение работает нормально; хотя для фактического использования его вне класса, в котором находится метод, вам необходимо установить доступ SampleMethod
к public
, а не к protected
во всех случаях, когда он появляется, поэтому:
public class A
{
public virtual void SampleMethod()
{
Console.WriteLine("lol");
}
}
public class B : A
{
public override void SampleMethod()
{
base.SampleMethod();
}
}
public class C : B
{
public override void SampleMethod()
{
base.SampleMethod();
}
}