开发者

How do I use Convert.ChangeType to cast to a specific class?

Does anyone know how I can use Convert.ChangeType to cast from XML to a specific class?

For example:

My Property

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

My XML:

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

Call to convert:

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

I have looked开发者_运维技巧 at using IConvertible but none of the methods are being called.

All of the examples I could find are using simple types. None show casting to an instance of a class.

Thank you,

Rick


Why do you think you need Convert.ChangeType()?

Surely you could just call SetValue() on the PropertyInfo object using the following overloaded SetValue method.:

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

However, you will first need to create an instance of the specific type, using something like Activator.CreateInstance() and set the individual properties for the Point. Subsequently, you then assign that point object/struct as input for the SetValue as you have it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜