Metaprogramming in .NET is designed to help readers understand the basic concepts, advantages, and potential pitfalls of metaprogramming. It introduces core concepts in clear, easy-to-follow language and then it takes you on a deep dive into the tools and techniques you'll use to implement them in your .NET code. You'll explore plenty of real-world examples that reinforce key concepts. When you finish, you'll be able to build high-performance, metaprogramming-enabled software with confidence.
I picked up this book just because it sounded 'meta' - writing code that writes code. I'm very glad I read through this book. This book provides amazing details on some of the lesser known aspects of .net like CodeDOM, Reflection.Emit, IL rewriting etc.
The chapters on CodeDOM (4th) and DLR (8th) are top-notch since they are packed with so much information. This book is probably (IMHO) the best documentation for Expressions and their usage. I'm sure to come back and refer this chapter in future.
I would've preferred more details on the IL and their opcodes as they are referenced many times in the book.
Though this book is not for beginners, the author's simple and clear language allows anyone with about 5yrs of .net experience to read the book.