Предположим, у меня есть следующие классы .NET:
public class C
{
public void M()
{
....
}
}
и
public class D
{
public void N()
{
....
}
}
Эти 2 класса находятся в разных пространствах имен, в разных сборках. Есть ли способ заставить все звонки на C.M()
автоматически 'перенаправить' на D.N()
? Таким образом, вызывающий метод вызывает его C.M
, но в действительности D.N
- это то, что фактически вызывается, с любыми параметрами, которые C.M
принял бы. Не имеет значения, происходит ли это для всех экземпляров класса или только для одного конкретного объекта.
MS Research имеет библиотеку Detours , которая может сделать нечто очень похожее для обычного экспорта Win32 DLL. Я ищу способ сделать это с помощью метода .NET.