title: Why is post-compilation code injection a better idea than pre-compilation code injection?
body: <p>So we all know that C# doesn't have a C-like macro pre-processor (and there's a good thread on why <a href="https://stackoverflow.com/questions/1369725/why-arent-there-macros-in-c">here</a>). But now that AOP is gaining traction, it seems like we're starting to do stuff with post-processors that we used to do with pre-processors (bear in mind that I am only getting my feet wet with <a href="http://www.postsharp.org/" rel="nofollow noreferrer">PostSharp</a> so am perhaps off base).</p>
  
  <p>I am a huge fan of attributes in C#, but if a pre-processor was left out for good reasons (which, as a former MFC user I still question but nevertheless accept) why is post-compilation code injection a better idea than pre-compilation code injection?</p>