ExtendedReflection makes it easy to build runtime analysis tools for .NET. ExtendedReflection takes care of instrumenting MSIL bodies at runtime and exposes more than 200 .NET callbacks, such as method enter/exit, argument values or field writes. ExtendedReflection also enables redirection of arbitrary method calls.
With ExtendedReflection, you can quickly write dynamic analysis tools in C# (or any other .NET language), without having to understand the low-level CLR internals. ExtendedReflection sits on top of the .NET Profiling API.
After downloading ExtendedReflection, look at the contained samples "Samples.Tracing" and "Samples.Reflection" to get started. Read more documentation (under construction), ask questions on the Pex and Moles forum, or Become A Fan on Facebook.