如何使用Convert.ChangeType转换为特定类?

时间:2010-01-28 17:15:24

标签: c# xml reflection

有谁知道如何使用Convert.ChangeType从XML转换为特定的类?

例如:

我的财产

public Point Loc
{
    get { return GetValue<Point2D>("Loc"); }
    set { SetValue<Point2D>("Loc", value); }
}

我的XML:

<Loc>
 <X>1.0</X>
 <Y>1.0</Y>   
</Loc>

致电转换:

prop.SetValue(targetObj, 
             Convert.ChangeType(xmlProperty.Value, prop.PropertyType));

我已经看过使用IConvertible但没有调用任何方法。

我能找到的所有示例都使用简单类型。无显示转换为类的实例。

谢谢,

瑞克

1 个答案:

答案 0 :(得分:0)

为什么您认为自己需要Convert.ChangeType()

当然,您可以使用以下重载的SetValue()方法在PropertyInfo对象上调用SetValue。:

prop.SetValue(targetObj,xmlProperty.Value,null);

但是,您首先需要使用Activator.CreateInstance()之类的内容创建特定类型的实例,并为Point设置各个属性。然后,您可以将该点对象/结构分配为SetValue的输入。