Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переопределение метода 
:(
    Опции темы
marcusmae
Дата 9.2.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 22
Всего: 39



Несмотря на то, что тема вроде бы закрыта, позволю себе обратить внимание автора вопроса на возможную технологию решения поставленной задачи : ICorProfilerCallback/ICorProfilerCallback2 API. Ссылку на статью про неё уже упомянул sekiro, вот ещё одна. В первой из статей предлагается способ вставки MSIL-кода в начало и/или конец тела вызываемого метода, во второй примером служит программа-счётчик вызовов методов.

В двух словах, ICorProfilerCallback - интерфейс, позволяющий общаться с .NET-профилером, который в цепочке исполнения расположен как бы между средами CLR и Just-In-Time. С его помощью Вы можете, например, зарегестрироваться  на получение callback -а о вызове некоторого метода внутри отдельно исполняющегося приложения, и перед тем, как код метода будет транслирован из CLR в Native и исполнен, делать с ним всё, что угодно, в частности, полностью подменить MSIL-код.

Сначала потребуется научиться переключать .NET со стандартного профилера на собственный. Для этого нужно переключить переменные средЫ - во второй статье это делается в отдельном процессе, имхо, весьма элегатно. Затем, собственно, сымплементить интерфес ICorProfilerCallback в соответствии с потребностями.

В общем, способ - не очень простой, но, если есть время, можно разобраться. Да, и он действительно используется для трассировки .NET приложений.  smile 

Это сообщение отредактировал(а) marcusmae - 9.2.2007, 20:55


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.