Ответ 1
Если вы используете .NET 4.0. или выше, посмотрите на: метод MethodRental.SwapMethodBody
Другой способ: CLR Injection: Реагент времени выполнения
Тема довольно расплывчата, так как я не знаю, какая правильная терминология для того, что я пытаюсь сделать.
Я загрузил dll
(у меня нет исходного кода), и с помощью инструмента отражения я обнаружил ошибку в реализации dll
. Ошибка легко исправить. Итак, скажем, ошибка здесь:
class A
{
void f() { // BUG!!! }
}
Есть ли способ реализовать мой собственный A
, который исправит ошибку и введет ее во время выполнения, чтобы заменить другие экземпляры A
?
Если вы используете .NET 4.0. или выше, посмотрите на: метод MethodRental.SwapMethodBody
Другой способ: CLR Injection: Реагент времени выполнения
Самый простой способ - наследовать от этого класса и написать свою собственную реализацию.
class ParentClass
{
public void SomeMethod() {
//bug here
}
}
class Child:ParentClass
{
new public void SomeMethod() {
// I fixed it
}
}
Здесь, используйте свой класс.
Child child = new Child();
child.SomeMethod();