vb.net和反射,需要从类名字符串中获取一个Type

时间:2011-12-30 17:12:43

标签: vb.net reflection

我正在构建一个验证框架,希望在数据库表中存储这些字段名称的字段名称和验证。

我想要做的是,给定表名(作为字符串),使用反射来实例化特定字段的get方法(使用Get和Set方法定义为属性。

一个记录包装器中的get / set对的示例。

'------------------------------------------------------------------------------------------------
'---------Get/Set (for field: VC60 
'------------------------------------------------------------------------------------------------
'

Public Property VC60() As String

    Get
        Return _VC60
    End Get


    Set(ByVal value As String)
        _VC60 = value
    End Set

End Property

我可以用

    Dim t As Type = GetType(DB_TableName)

获取类型并使用t.GetMembers获取方法,

但我缺少的是如何在给定类的字符串名称的情况下获取类的类型。

这是一个使用visual Basic 2008生成.exe的控制台应用程序

我尝试使用System.Activator.CreateInstance访问程序集引用但没有成功。

2 个答案:

答案 0 :(得分:0)

GetType可以接受字符串作为类型名称的参数。确保将名称空间限定的类型名称传递到GetType方法中,并在项目中使用该程序集。否则,你只会得到一个空的返回值。

MSDN:GetType Method (String)

答案 1 :(得分:0)

如果类型在mscorlib中,您可以调用Type.GetType(someString)

否则,您需要找到该类型的Assembly实例并调用其GetType(string)方法。