Compile time decorator pattern via IL rewriting