C # Перехват / изменение / перенаправление метода

Допустим, у меня есть частный, "экземпляр", нестатический метод bool в сторонней dll. Все, что делает этот метод - возвращает значение. Ничего больше. Как бы мне перехватить вызовы этого метода, изменить его IL-коды / тело метода или перенаправить его на дополнительный, переопределенный или производный метод.

Я не хочу декомпилировать сторонние dll, вручную менять исходный код и перекомпилировать его. Я также предпочел бы не сохранять сборку на диск, так как это также предполагает использование «перекомпилированной» сборки вместо оригинальной.

Я в основном хочу иметь возможность использовать оригинальную DLL - без замен или изменений файла. Я просто хочу сделать то, что я упомянул выше.

Есть ли способ пойти по этому поводу? Если да, можете ли вы разработать или опубликовать ссылки / учебники / и т.д.

Кроме того, я знаю о виртуальных, переопределенных и новых модификаторах, но помните, что я: не имею источника упомянутой сторонней библиотеки dll, не могу получить доступ к источнику, не хочу декомпилировать что-либо, например dotPeek, и перекомпилировать.

Спасибо!

Изменить: я забыл упомянуть остальную часть инфраструктуры: MainProgram загружает ThirdPartyDLL. MainProgram также загружает MyPluginDLL. Я пытаюсь изменить метод в ThirdPartyDLL из MyPluginDLL, чтобы при вызове MainProgram указанного метода он вызывал измененный метод. Я хочу быть в состоянии сделать это БЕЗ сохранения новой сборки и перезапуска MainProgram с новой сборкой. По сути, я хочу сделать это либо при запуске или при запуске MainProgram.

Ответы на вопрос(1)

Ваш ответ на вопрос