About this Book
Metaprogramming in .NET requires you to move beyond the canonical material of interfaces, virtual methods, and events to more advanced and probably unknown concepts like reflection, assembly rewriting, expressions, and code analysis. If you’ve never encountered these APIs or techniques, it may feel a little daunting to even approach the first chapter!
We don’t “pontificate on the profound”—that is, although you’ll be exposed to new ideas, you won’t read about every extreme, esoteric corner of metaprogramming. Rather, you’ll be guided into these realms with an understanding of why you need to learn about these techniques. At the end of the day, we want you to not only gain an appreciation of how powerful metaprogramming is, but how to use this material in your day-to-day coding experiences.
Throughout this book, you’ll learn about different techniques and frameworks. They all have their strengths and weaknesses. Some work well in some areas of an application, and others shine somewhere else. You’ll understand when it’s best to use one tool, and what the trade-offs are in using a particular approach.