Нет, вы не можете реализовать API профилирования CLR в управляемом коде (C # или иным образом), поскольку обратные вызовы профилирования вызываются в очень конкретные моменты времени, когда предполагается, что управляемая среда находится в определенном состоянии. Реализация ваших обратных вызовов в управляемом коде нарушила бы множество предположений.
Дэвид Броман, разработчик API профилирования CLR, имеет это, чтобы сказать :
Вам нужно написать свой профайлер в
C ++. Профилировщик вызывается
время выполнения в очень деликатных точках во время
оформление профилированного заявления,
и часто крайне опасно быть
запуск управляемого кода в этих точках.
Блог Дэвида - отличный ресурс для работы с API профилирования CLR.