Metaprogramming in C#: Automate your .NET development and simplify overcomplicated code - Ingebrigtsen (IEEE, 2003)