对于带有前缀“。”的类型名称,Type.GetType搜索规则是什么?

时间:2011-12-04 15:43:26

标签: c# .net reflection .net-4.0 f#

e.g。 Type.GetType(".System.Collections.ArrayList", false, false)Type.GetType("System.Collections.ArrayList", false, false)

我曾假设这些是相同的,但我注意到前者需要两倍的时间来解决,经过进一步的调查,我找不到对前者的明确支持:http://msdn.microsoft.com/en-us/library/w3f99sx1.aspx

这些是等价的,如果是的话,任何想法为什么前者要比后者解决两倍呢?

2 个答案:

答案 0 :(得分:0)

从您提供的链接:

  

句点(.)表示名称空间标识符。

让前导.导致扫描所有名称空间,甚至是当前程序集之外的名称空间。

答案 1 :(得分:0)

这里确实没有全局命名空间的概念,因为您打开的命名空间在此上下文中无关紧要。

将其视为始终从根(全局)进行搜索。 Type.GetType不在任何名称空间中,并且没有打开任何名称空间。您必须限定要搜索的类型,包括其命名空间。