Подтвердить что ты не робот

Как заменить класс в dll?

Тема довольно расплывчата, так как я не знаю, какая правильная терминология для того, что я пытаюсь сделать.

Я загрузил dll (у меня нет исходного кода), и с помощью инструмента отражения я обнаружил ошибку в реализации dll. Ошибка легко исправить. Итак, скажем, ошибка здесь:

class A 
{
    void f() { // BUG!!! }
}

Есть ли способ реализовать мой собственный A, который исправит ошибку и введет ее во время выполнения, чтобы заменить другие экземпляры A?

4b9b3361

Ответ 2

Самый простой способ - наследовать от этого класса и написать свою собственную реализацию.

  class ParentClass
            {
                public void SomeMethod() { 
                   //bug here 
                }
            }

            class Child:ParentClass
            {
                new public void SomeMethod() { 
                   // I fixed it 
                }
            }

Здесь, используйте свой класс.

Child child = new Child();
child.SomeMethod();