Профилирование CLR - это цель .NET Profiling API, поэтому он идеально подходит для ваших нужд. Большая часть продуктов профилировщика основана на этом. Но вам придется писать неуправляемый код, urk.
Использование Cecil также возможно, и довольно просто, если вы просто хотите записать вход / выход методов.
EDIT:
Что ж, PostSharp , вероятно, является лучшим решением, поскольку оно позволяет выполнить такое требование, полагаясь на статическое плетение. AOP обеспечивает лучший уровень абстракции, чем прямая перезапись IL с помощью Cecil.