About System.Reflection.Emit
The most common reason for using dynamic types is to solve a performance problem. One common pattern I’ve encountered many times as a programmer is the Object / Relational Database mapping framework, whose purpose is to provide a generic API for mapping class properties to database tables or stored procedure result sets. Most use some sort of metadata, such as XML, to map what columns from a result set gets written to what property of a class. In order to do this, they use reflection to query a class for a desired property, and use reflection again to populate the property with the data from the result set.
The Classic Sample:C# PK VB.NET,来吧,到底谁更强