Substituir um método substituído (c #)

Eu estou tentando substituir um método substituído (se isso faz sentido!) Em c #.

Eu tenho um cenário semelhante ao abaixo, mas quando eu tenho um ponto de interrupção no SampleMethod () na classe "C" não está sendo atingido, enquanto o mesmo ponto de interrupção no método "B" está sendo atingido.

public class A
{
      protected virtual void SampleMethod() {}
}

public class B : A 
{
      protected override void SampleMethod()
      {
           base.SampleMethod(); 
      }
}

public class C : B
{
      protected override void SampleMethod() 
      {
           base.SampleMethod(); 
      }
}

Desde já, obrigado!

Editar:

Ok, o contexto ajudaria:

Isso está no contexto de um controle composto, de modo que a classe A herda de CompositeControl e chama SampleMethod () depois de substituir o método CreateChildControls ().

questionAnswers(6)

yourAnswerToTheQuestion