Могу ли я перенаправить вызовы метода .NET на новый метод во время выполнения?
Предположим, у меня есть следующие классы .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 имеетБиблиотека обходов это может сделать что-то очень похожее для обычного экспорта Win32 DLL. Я ищу способ сделать это с помощью метода .NET.