Table of Contents
- How Can Metaprogramming Benefit You?
- Metaprogramming Concepts
- Demystifying through Existing Real-World Examples
- Reasoning about Types Using Reflection
- Leveraging Attributes
- Dynamic Proxy Generation
- Reasoning about Expressions
- Building and Executing Expressions
- Taking Advantage of the Dynamic Language Runtime
- Convention over Configuration
- Applying the Open-Closed Principle
- Go Beyond Inheritance
- Applying Cross-Cutting Concerns
- Aspect Oriented Programming
- Roslyn Compiler Extensions
- Generating Code
- Static Code Analysis
- Caveats and Final Words

