Q-->question A-->answer M-->mention
The Chapter 22th Assambly load and reflection
M:类型信息的发现,类型实例的创建以及类型成员的访问(程序集的加载和反射),通常用于创建动态的可扩展的应用程序.
M:内部实现上,CLR通过使用System.Reflection.Assembly类的静态Load()来试图加载程序集
M: GAC==> Global Assembly Cache 全局程序集缓存
M:在动态可扩展的应用程序中,Assembly的Load()是将程序集加载到应用程序域的首选方法.
Q:反射的性能(缺点)?
A:1.因大量使用了字符串,所以其不提供编译时类型安全
2.类型及其成员名字在编译时未知,必须在运行时通过使用字符串来标识和发现它们,这意味着要不断扫描程序集的整个元数据,执行相应的字符串搜索,因此其速度慢
M:发现程序集中定义的类型:最常用--> Assembly.GetExportedTypes()