可以根据C#中的Type实例访问给定类型的Parse方法吗?

时间:2010-12-22 14:15:19

标签: c# types string-parsing

我正在使用DataTable并指定不同类型的列。我有一个场景,我收到String数据,我想根据列的指定类型解析它,但我无法弄清楚如何获得解析方法。

是否可以通用方式访问Type实例的解析方法?

2 个答案:

答案 0 :(得分:5)

您正在寻找Convert.ChangeType

答案 1 :(得分:2)

如果您使用的不仅仅是基本类型(Convert.ChangeType处理得非常好),那么首选的方法是通过TypeConverter

var converter = TypeDescriptor.GetConverter(type);
object val = converter.ConvertFromString(s); // note various overloads,
                                             // or ConvertFromInvariantString

这很方便,因为可以在编译时(添加[TypeConverter(...)])或在运行时(TypeDescriptor.AddAttributes(...))扩展此模型以识别其他类型(或更改现有类型的实现) )。