关于获取运行时类型

刚看了"关于跨程序集的反射(续)"一文,本来打算在文后回复的,后来发现其实在作者以前那篇相同内容的文章中我已经回复了,而且自我感觉已经非常完整。如果再回复没准还会出来一篇内容依然相同的文章。所以决定写下此文。

所谓完全限定名,并不是文中所引用的luna的描述:"<<完全限定类名>>,<<程序集>>"。完全限定名中已经包括类型所在的程序集名,即使改成"<<完全类名>>,<<程序集>>"也不完全正确。相关的描述MSDN中已经非常完整了。

使用Type.GetType(完全限定名)获取类型是运行时获取动态引用类型的最佳方式。自己写代码来获取运行时类型的方式丑陋无比。

有一个原因不使用Type.GetType方法获取类型,那就是类名未知或者按照某种命名规则获得一组类型的集合。例如:"*, MyAssembly"表示MyAssembly程序集中的全部输出类型。这样就需要先找到Assembly,然后通过匹配算法从ExportTypes数组中的获取类型。
posted @ 2006-01-06 18:04  双鱼座  阅读(2369)  评论(3)    收藏  举报