vb.net通过名称获取对类的引用

时间:2010-09-06 08:51:40

标签: vb.net reflection

我正在尝试使用反射来获取vb.net中的类的实例。我在我的web项目中有一个类'A'并测试它,我创建一个新的aspx页面并尝试编写以下内容:

Dim t as Type = Type.GetType("A")

返回“Nothing”。但如果我这样做:

Dim inst as A = new A()
Dim t as Type = inst.GetType()

的类型是“A”

那么为什么即使名称完全相同,我也无法使用GetType获取类型?它确实适用于像System.Math这样的东西,所以我可能会错过一些新手。

1 个答案:

答案 0 :(得分:3)

两件事:

  • 您需要包含类型
  • 的命名空间
  • 如果类型不在mscorlib或当前正在执行的程序集中,则还需要指定程序集名称(如果它是强名称程序集,则包括版本号和公钥信息)。

例如,要掌握System.Linq.Enumerable,您需要以下内容:

Type.GetType("System.Linq.Enumerable, System.Core, Version=4.0.0.0, " & _
             "Culture=neutral, PublicKeyToken=b77a5c561934e089")