反射给对象赋值——类型转换
2017-09-09 18:41
134 查看
文章转自: http://blog.csdn.net/xiaohan2826/article/details/8536074
反射给对象赋值遇到的问题——类型转换
发布时间:2012-10-25 10:49浏览次数:225给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值,但要注意值的类型要与属性保持一致。
创建对象实例的两种方法:
1.
创建好实例时,现在可以给当前实例的某个属性赋值,首先获取要赋值的属性。
情况1,该属性类型是已知类型,例如:int
情况2,该属性类型是已知类型,原值是其他类型。例如:目标类型为int,值为string
情况3,该属性类型是未知非泛型类型,不确定目标类型,如何进行类型转换。
不知道大家有没有注意,我在第三种情况强调了非泛型,难道泛型就不行了吗?
是的。如果只是用Convert.ChangeType()方法,类型转换仍然报错,先看下面的代码。
即使目标类型和值的类型是一致,通过Convert.ChangeType()进行转换仍然报错。
解决这个问题,就要先把属性值类型转成基类型后,在进行Convert转换。看代码
这样,在使用Convert.ChangeType()转换可空类型时,就不会报错了。
再增加一些基础的判断验证,代码就比较完善了。
相关文章推荐
- [转]反射给对象赋值遇到的问题——类型转换
- C# 反射给对象赋值遇到的问题——类型转换
- 反射给对象赋值遇到的问题——类型转换
- C# 反射给对象赋值遇到的问题——类型转换
- 遍历 Map 对象, 利用反射为 Class 对象的对应的属性赋值.
- 用反射将DataTable的一行DataRow构建为一个自定义类的对象 - 给对象的属性赋值
- java使用反射机制进行对象间数据赋值获取
- 巧用dynamic给对象字段动态赋值(经测试无效,使用反射解决)
- Java 对象反射赋值工具类
- 同一种类型的两个对象赋值,用反射。再也不用点属性了。。。。(适用于ef)
- C#通过反射给对象赋值
- 利用反射机制来获取表单请求值以及对象赋值
- 同类型对象利用反射自动赋值
- 利用发反射对对象进行赋值
- Reflect 通过反射获取自定义注解值给另外一个对象赋值
- c# 利用反射动态给实体类对象赋值
- 随机让对象中的属性赋值,不通过过判断(通过反射)
- 任意两个对象赋值,用Spring.Objects.ObjectWrapper效率比直接反射还慢?
- 利用反射实现两个对象赋值
- C# 反射给对象属性赋值遇到的问题——类型转换