在运行时将字符串转换为Object类型

时间:2013-02-28 09:38:36

标签: c# reflection

我有一个类,简单的像

class Example
{
    uint id;
    ushort value1;
    string value2;
    DateTime timestamp;
 }

我也有一个csv,比如:

id;value1;value2;timestamp
5;0x2313;whatever;2012-12-23-12:14:34,567
6;0x2A14;something;2012-12-24:13:14:15:167

我想基于CSV创建对象,但真正的类要大得多,容易改变,所以我想使用反射。 我有一些代码获取属性的名称,并找到相应的字符串。我没有得到的是,我如何将字符串转换为属性的任何类型。我已经找到了一些代码示例如何对值进行CAST,但是将字符串转换为short并不是看起来像解决方案。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您可以使用Convert.ChangeType方法:

myObject.Field = Convert.ChangeType(value, fieldType);

答案 1 :(得分:0)

您可能需要查看Convert课程。 如果您知道要将字符串转换为的类型,则可以使用该字符串。

或者,您可以使用类型的Parse()或TryParse()方法。

例如,要将字符串转换为短字符,可以使用Int16.TryParse()