反射 - 考虑数据类型设置对象属性
我已经发现可以使用反射设置属性的值: 使用以下命令设置对象属性反射
但我的问题是我的数据仅以字符串形式存在。因此,我当然总是会遇到异常,因为它不是正确的类型。
有没有一种方法可以自动尝试将字符串解析为相应的类型(DateTime、int、decimal、float)?
下面是我正在使用的代码:
Type myType = obj.GetType();
PropertyInfo[] props = myType.GetProperties();
foreach (PropertyInfo prop in props)
{
setProperty(obj, prop, data[prop.Name]);
}
data
是一个简单的关联数组,其中包含字符串形式的数据。这些数据应该映射到 obj 中。
I already found out that it is possible to set the value of a property using reflection: Set object property using reflection
But my problem is that my data exists only as string. Therefore of course I always get an exception because it is not the right type.
Is there a way of automatically trying to parse the string to the according type (DateTime, int, decimal, float)?
Below is the code I'm using:
Type myType = obj.GetType();
PropertyInfo[] props = myType.GetProperties();
foreach (PropertyInfo prop in props)
{
setProperty(obj, prop, data[prop.Name]);
}
data
is a simple associative array that contains the data as string. These data are supposed to be mapped into obj
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用
Convert
类:You can use the
Convert
class:您应该能够使用
TypeConverter
:You should be able to use the
TypeConverter
:您可以在
TypeConverter
类代码>System.ComponentModel:You can use the
TypeConverter
class inSystem.ComponentModel
: