title: Adding code to the beginning / end of methods in runtime dynamically
body: <p>I know instrumentation is a technique to add trace code dynamically into the methods to enable tracing and debugging.</p>
  
  <p>I was wondering if this is only a "Trace" option, hard coded into the CLR to add only trace code, or is there the ability to add any code to the methods?</p>
  
  <p>For example, I want to check for a condition in the beginning of every single method call in a certain class (say for permissions). Can I do this via adding dynamic code to the beginning of the methods in execution time?</p>
  
  <p>I'm not sure how this trace "instrumentation" thing works, but I'm wondering if this can be used for other goals too, or not.</p>