Polimorfismo Através de Métodos de Extensão?

Eu tenho uma biblioteca de classes que contêm algumas classes base e outras que são derivadas delas. Nesta biblioteca de classes, estou aproveitando o polimorfismo para fazer o que eu quero. Agora, em um aplicativo consumidor, desejo alterar o comportamento de algum código com base no tipo de tempo de execução das classes filhas. Então, assuma o seguinte:

public class Base { }
public class Child1 : Base { }
public class Child2 : Base { }

Agora, no aplicativo de consumo, desejo fazer algo da seguinte maneira (observe que todas as classes a seguir estão no aplicativo de consumo e não podem ser referenciadas na biblioteca de classes):

public interface IMyInterface1 { }
public interface IMyInterface2 { }
public static class Extensions
{
    public static void DoSomething(this Base myObj, Object dependency)
    {

    }

    public static void DoSomething(this Child1 myObj, Object dependency)
    {
        IMyInterface1 myInterface = dependency as IMyInterface1;
        if (myInterface != null)
        {
            //Do some Child1 specific logic here
        }
    }

    public static void DoSomething(this Child2 myObj, Object dependency)
    {
        IMyInterface2 myInterface = dependency as IMyInterface2;
        if (myInterface != null)
        {
            //Do some Child2 specific logic here
        }
    }
}

ATUALIZAR:

Isso não funciona. Ele sempre chama o método de extensão da classe base. Existe alguma outra maneira que me permita fazer isso e evitar ter que verificar explicitamente o tipo de tempo de execução? As razões são porque mais classes que são derivadas doBase poderia ser adicionado e os métodos de extensão correspondentes poderiam vir de algum outro conjunto externo.

Desde já, obrigado.

questionAnswers(5)

yourAnswerToTheQuestion