Допустим, у меня есть частный, «экземпляр», нестатический метод bool в сторонней dll. Все, что делает этот метод, это возвращает значение. Ничего больше. Как мне перехватить вызовы этого метода, изменить его IL OpCodes/тело метода или перенаправить его на дополнительный, переопределенный или производный метод.
Я не хочу декомпилировать стороннюю dll, вручную менять исходники и перекомпилировать. Я также предпочел бы не сохранять сборку на диск, так как это также потребует использования «перекомпилированной» сборки вместо оригинала.
Я в основном хочу иметь возможность использовать оригинальную dll - без замен или изменений файлов. Я просто хочу сделать то, что я упомянул выше.
Есть ли способ сделать это? Если да, можете ли вы уточнить или опубликовать ссылки/учебники/и т. д.
Кроме того, я знаю модификаторы virtual, override и new, но помните, что у меня: нет исходного кода указанной сторонней dll, я не могу получить доступ к исходному коду, не хочу декомпилировать с помощью чего-то вроде dotPeek и перекомпилировать.
Спасибо!
Редактировать: я забыл упомянуть об остальной инфраструктуре: MainProgram загружает ThirdPartyDLL. MainProgram также загружает MyPluginDLL. Я пытаюсь изменить метод в ThirdPartyDLL из MyPluginDLL, чтобы, когда MainProgram вызывает указанный метод, он вызывал измененный метод. Я хочу иметь возможность сделать это БЕЗ сохранения новой сборки и перезапуска MainProgram с новой сборкой. По сути, я хочу сделать это либо при запуске, либо во время работы MainProgram.