博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
反射遍历List<>泛型类型
阅读量:6711 次
发布时间:2019-06-25

本文共 1012 字,大约阅读时间需要 3 分钟。

有这样一个需求:一个实体模型,有一个属性是一个实体列表List<OrderDetail>,我需要对实体列表遍历,对每一个实体的属性根据属性特性进行验证,如是否为必填等等,如下一个反射方法能满足需求。

public class OrderObj{    public Order order {
get;set;} public List
orderDetail {
get;set;} }public class Order{ public string OrderID {
get;set;}}public class OrderDetail{ [Required] public string ID {
get;set;} [Number] public string Quantity {
get;set}}

 

示例代码:

public void MyMethod(object obj){    foreach (PropertyInfo propertyInfo in obj.GetType().GetProperties())    {        object value = propertyInfo.GetValue(obj, null);        if (propertyInfo.PropertyType.IsGenericType)        {            Type objType = value.GetType();            int count = Convert.ToInt32(objType.GetProperty("Count").GetValue(value, null));            for (int i = 0; i < count; i++)            {                object listItem = objType.GetProperty("Item").GetValue(value, new object[] { i });            }        }    }}

 

转载于:https://www.cnblogs.com/PongorXi/p/3255612.html

你可能感兴趣的文章
两种将字符串转换成浮点数的方法
查看>>
Xcode 调试技巧-b
查看>>
几种常见SQL分页方式效率比较
查看>>
socket中的SO_REUSEADDR
查看>>
Android中Bitmap、Drawable、byte[]转换
查看>>
[杂记]是否有必要精通unix的shell语法?
查看>>
Oracle 数据类型及存储方式(二)
查看>>
UNIX时间戳的应用-JAVA
查看>>
Intelij 中javax.servlet.http.HttpServlet包导不进来
查看>>
dynamic disk无损转为basic disk
查看>>
SoftReference缓存图片
查看>>
PHP关闭(禁止)脚本错误提示的方法及让脚本错误提示输出为日志文件的方法
查看>>
URAL 1013 K-based Numbers. Version 3
查看>>
[转]请记住别拿自己跟别人比较
查看>>
srl16e verilog
查看>>
硬笔书法练习
查看>>
带您走进七周七语言的程序世界
查看>>
Stream和Reader、Writer对象学习
查看>>
Boost简介
查看>>
计算机常用端口一览表:
查看>>