Динамический перехват вызовов в [закрытой].NET

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

8
задан Kirill Osenkov 15 January 2013 в 21:28
поделиться

1 ответ

Нет ничего встроенного, что позволило бы вам перехватить объект, создание экземпляра которого вы не можете контролировать. Точно так же не будет новых возможностей для этого в грядущей .net 4.0.

Если вы можете управлять созданием экземпляра:

  1. Если ваш объект может быть MarshalByRef, вы можете использовать RealProxy .
  2. Вы можете использовать довольно много контейнеров IOC, например. LinFu , Castle Dynamic Proxy
  3. Вы можете использовать такие инструменты, как PostSharp , Mono Cecil или Microsoft CCI , чтобы переписать ваши сборки с перехватами в качестве этапа пост-компиляции.

Если вы не можете управлять созданием экземпляров

  1. , вы можете использовать ICorDebug - API-интерфейсы отладки .Net, которые действительно сложны и тяжелы.
  2. Вы можете использовать ICorProfiler - файл. API-интерфейсы профилирования .Net также довольно сложны в использовании.

В качестве альтернативы вы можете посмотреть на динамический язык, например IronRuby, который имеет встроенный alias_method и define_method goodness (который позволяет вам переопределить что угодно), поэтому перехват .


.NET 4.5 представляет метод для методов ReJIT , который предоставляет еще один перехват для перехвата метода (при условии, что вы не используете параллельный сборщик мусора / bg и метод не встроен)

17
ответ дан 5 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: