明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

什么是映射(reflection)?

[摘要]所有的.Net編譯器在產(chǎn)生模塊(Modules)的目標代碼時都會產(chǎn)生有關(guān)類型的元數(shù)據(jù)(metadata), 這種元數(shù)據(jù)被捆綁在模塊目標代碼上(多個模塊組成assemblies, 一個assembly是.Net下安全控制的基本單位,也是類型對象識別的基本單位), 這種元數(shù)據(jù)可以通過.Net環(huán)境下的r...
所有的.Net編譯器在產(chǎn)生模塊(Modules)的目標代碼時都會產(chǎn)生有關(guān)類型的元數(shù)據(jù)(metadata), 這種元數(shù)據(jù)被捆綁在模塊目標代碼上(多個模塊組成assemblies, 一個assembly是.Net下安全控制的基本單位,也是類型對象識別的基本單位), 這種元數(shù)據(jù)可以通過.Net環(huán)境下的reflection對象訪問. System.Reflection名字空間下包含了可以訪問這種數(shù)據(jù)的多種類.

使用reflection訪問.Net元數(shù)據(jù)和使用ITypeLib/ITypeInfo訪問COM對象的類型庫數(shù)據(jù)非常類似. 例如, 決定類型數(shù)據(jù)的大小, 通過(程序上下文/進程/機器)邊界列集數(shù)據(jù)傳遞.

所以, 可以使用Reflection對象動態(tài)引用方法(可以查看System.Type.InvokeMember), 甚至還可以動態(tài)地在運行時產(chǎn)生類型(System.Reflection.Emit.TypeBuilder)