Posso redirecionar chamadas do método .NET para um novo método em tempo de execução?

Suponha que eu tenha as seguintes classes .NET:

public class C
{
    public void M()
    {
        ....
    }
}

e

public class D
{
    public void N()
    {
        ....
    }
}

Essas 2 classes residem em diferentes namespaces, em diferentes assemblies. Existe uma maneira de fazer com que todas as chamadas paraC.M() redirecionar automaticamente paraD.N()? Então, o método de chamada chama sua atençãoC.M, Mas na realidade,D.N é o que realmente é chamado, com quaisquer parâmetros queC.M teria levado. Não importa se isso acontece para todas as instanciações da classe ou apenas para um objeto específico.

MS Research tem oBiblioteca de desvios isso pode fazer algo muito semelhante às exportações normais da DLL do Win32. Estou procurando uma maneira de fazer isso com um método .NET.

questionAnswers(5)

yourAnswerToTheQuestion