如何存储System.Type没有后期绑定问题?

时间:2011-06-24 19:15:49

标签: .net vb.net

我正在尝试将DbDataReader.GetSchemaTable.DataRow的“DataType”字段值(类型System.Type)存储到System.Type类型的类字段中。

即:

Class MyClass

  Private _ColumnName As String
  Private _DataType As Type

  Sub New(row As DataRow)
    _ColumnName = Convert.ToString(row("ColumnName"))
    _DataType = row("DataType")
  End Sub

End Class

我可以通过强制转换为字符串解决ColumnName的后期绑定问题,但我对如何处理DataType感到茫然。

如果我使用_DataType = row("DataType").GetType,则存储System.RuntimeType而不是实际类型。

3 个答案:

答案 0 :(得分:1)

我相信你想使用Type.GetType(row("DataType")),假设row("DataType")是一个字符串的完整类型名称。

答案 1 :(得分:1)

如果您知道它是Type的实例,请使用DirectCast(row("DataType"), Type)

Class MyClass

  Private _ColumnName As String
  Private _DataType As Type

  Sub New(row As DataRow)
    _ColumnName = Convert.ToString(row("ColumnName"))
    _DataType = DirectCast(row("DataType"), Type)
  End Sub

End Class

答案 2 :(得分:0)

这在数据集中非常相似,

oDataSet.Tables(0).Rows.GetType().ToString

你可以试试这个

  _DataType = row(0).GetType.ToString()