Supposons que j'ai les classes .NET suivantes:Puis-je rediriger les appels de méthode .NET vers une nouvelle méthode lors de l'exécution?
public class C
{
public void M()
{
....
}
}
et
public class D
{
public void N()
{
....
}
}
Ces 2 classes se trouvent dans différents espaces de noms, dans les différentes assemblées. Y at-il un moyen de provoquer tous les appels à C.M()
pour «rediriger» automatiquement à D.N()
? Donc, la méthode d'appel appelle son C.M
, mais en réalité, D.N
est ce qui est appelé, avec tous les paramètres que C.M
aurait pris. Ce n'est pas grave si cela se produit pour toutes les instanciations de la classe, ou juste pour un objet spécifique.
MS Research a le Detours Library qui peut faire quelque chose de très similaire pour les exportations normales de DLL Win32. Je suis à la recherche d'un moyen de le faire avec une méthode .NET.
Je vais vérifier LOOM.NET, mentionné dans ce billet de blog. Cela semble également prometteur. –