如何获得任何基本系统对象或基元的类型

本文关键字:类型 对象 何获得 任何基 本系统 | 更新日期: 2023-09-27 18:27:03

我正试图从SQL查询的结果中智能地填充对象。我循环使用SQLDataReader的结果,并使用GetDataTypeName()来获得任何特定字段中保存的数据类型的字符串表示。

如何在不手动将字符串名称映射到类型的情况下自动获取每个字段的Type。我尝试过使用:

Type.GetType(reader.GetDataTypeName(), true, true)

(注意,忽略区分大小写)

但是GetDataTypeName()返回诸如"int"之类的基元字符串,并且对于给定的示例,这些字符串抛出TypeLoadException。

我读到GetType()需要一个程序集限定的类型名称,所以像DateTime这样的非基元系统类型需要用"system.DateTime"限定,但是简单地在"system"命名空间前面加上"int"对这样的基元类型没有帮助。

如何获得任何基本系统对象或基元的类型

这里不需要解析任何内容;仅使用:

Type type = reader.GetFieldType(columnIndex);