Предположим, у меня есть частный, «экземпляр», нестатический метод bool в сторонней dll. Весь этот метод возвращает значение. Ничего больше. Как я могу перехватить вызовы этого метода, изменить его IL OpCodes/тело метода или перенаправить его на дополнительный, переопределенный или производный метод.C# Перехват/изменение/перенаправление метода
Я не хочу декомпилировать стороннюю dll, вручную изменить источник и перекомпилировать его. Я также предпочел бы не сохранять сборку на диск, так как это также предполагает использование «перекомпилированной» сборки вместо оригинала.
Я в основном хочу иметь возможность использовать исходную dll - никаких замен или изменений файлов. Я просто хочу сделать то, о чем я говорил выше.
Есть ли способ обойти это? Если да, можете ли вы разработать или опубликовать ссылки/учебники/и т. Д.
Кроме того, я знаю об виртуальных, переопределяющих и новых модификаторах, но помню, что я: не имею источника упомянутой сторонней DLL, не могу получить доступ к источнику, не хочу декомпилировать что-то вроде dotPeek и перекомпилировать.
Спасибо!
Редактировать: Я забыл упомянуть остальную инфраструктуру: MainProgram загружает ThirdPartyDLL. MainProgram также загружает MyPluginDLL. Я пытаюсь изменить метод в ThirdPartyDLL из MyPluginDLL, так что, когда MainProgram вызывает указанный метод, он вызовет измененный метод. Я хочу иметь возможность сделать это БЕЗ сохранения новой сборки и перезапуска MainProgram с новой сборкой. По сути, я хочу сделать это либо при запуске, либо при запуске MainProgram.
Держу пари, что вы ищете [Mono.Cecil] (http://www.mono-project.com/Cecil). [Учебники находятся здесь] (http://stackoverflow.com/questions/1513319/mono-cecil-documentation-and-tutorials) – Measuring
@ Измеряя, я знаю, что знаю. Но куда я смотрю? Я знаю только о ReadAssembly и SaveAssembly. Помните, что я не хочу сохранять и использовать новую сборку. Я хочу использовать тот же файл сборки/dll, не сохраняя измененный. – user3150838
Вы пытаетесь перехватить ВСЕ вызовы этого метода или просто ВАШИ обращения к этому методу? –