使用CodeDom動態(tài)生成類型

.NET 3.5的時(shí)候加入了匿名類型這個(gè)特性,我們可以直接使用 new {name="abc"} 來直接生成一個(gè)對象。這個(gè)特性現(xiàn)在應(yīng)用的地方很多,比如dapper的查詢參數(shù)都是用匿名對象。
其實(shí)匿名對象也不是真的沒有名稱,編譯器在編譯后自動會生成一個(gè)Type。我們看看IL就知道了。

編譯器會自動生成一個(gè)叫做<>f__AnonymousType0`1的類型。

動態(tài)生成類型

但是有的時(shí)候我們可能類型里面的字段都是不確定的,這個(gè)時(shí)候我們就需要去動態(tài)生成一個(gè)類型了。