Подмена метода C#

172
28 марта 2019, 03:50

Вопрос не нов, но в сети я не смог найти ответа к сожалению. В общем ситуация следующая,у меня есть класс к примеру:

class MyClass
{
    public void MyMethod()
    {
        Console.WriteLine("MyMethod");
    }            
}

Задача следующая мне нужно подменить метод MyMethod на другой, новый. Причем мне НЕ требуется динамическая подмена методов,мне нужно просто затереть существующий и заменить новым.

Дело в следующем. я пишу дополнение к одной опер сорс программе и для того что бы мое дополнение было легко переносимо на другие более новые версии этой программы (которые разрабатывают другие разработчики независимо от меня) все стыковки с исходным кодом я реализовал как методы расширения. В итоге весь код дополнения которым я занимаюсь легко переносится на новые версии программы путем добавления двух строк в исходный код. В этой программе есть класс в котором содержится метод который мне нужно затереть, соответственно я не хочу влазить в чужой код напрямую что бы сохранить легкость переноса моих дополнений на новые версии программы. Подскажите можно ли это как то реализовать?

Если сделать что то вроде:

static class MyClassExtencion
{
    public static new void MyMethod(this MyClass cl)
    {
        Console.WriteLine("New method");
        cl.MyMethod();
    }
}

То это само собой работать не будет, так как метод расширения не затирает изначальный метод... однако хотелось бы сделать как нибудь схожим образом

READ ALSO
Как добавить данные в базу MySQL из DataGrid C#?

Как добавить данные в базу MySQL из DataGrid C#?

Как добавить данные вводимые в DataGrid в базу данных MySQL? Добавленных данных нет в базе, и ошибок, почему это происходит тоже нетЯ пытаюсь решить...

222
Как я могу получить выбранный элемент из DataGrid WPF?

Как я могу получить выбранный элемент из DataGrid WPF?

Я получаю DataTable из базы данных, после заполняю им DataGrid:

185
Как в wp_remote_request обработать таймаут?

Как в wp_remote_request обработать таймаут?

Всем привет! Делаю запрос через wp_remote_request с заданным тайм аутом, не понимаю как мне обрабатывать ситуацию если в заданный тайм аут ответ не пришел...

178
Как передать файл на PHP?

Как передать файл на PHP?

Есть смартфоновое приложение, которое загружает с сервера картинкиПоявилась необходимость вносить изменения в адрес запроса, чтобы на смартфон...

200