Kann ich .NET-Methodenaufrufe zur Laufzeit an eine neue Methode umleiten?

Angenommen, ich habe die folgenden .NET-Klassen:

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

un

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

Diese 2 Klassen befinden sich in verschiedenen Namespaces und in verschiedenen Assemblys. Gibt es eine Möglichkeit, alle Anrufe auf @ zu veranlassC.M() um automatisch zu @ umzuleitD.N()? Also, die aufrufende Methode Dinge sein Aufrufen vonC.M, aber in der Realität,D.N ist das, was tatsächlich aufgerufen wird, mit allen Parametern, dieC.M hätte genommen. Es spielt keine Rolle, ob dies für alle Instanzen der Klasse oder nur für ein bestimmtes Objekt geschieht.

MS Research hat dieDetours Library das kann für normale Win32-DLL-Exporte etwas sehr Ähnliches bewirken. Ich suche nach einer Möglichkeit, dies mit einer .NET-Methode zu tun.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage