日期:2014-05-20  浏览次数:20983 次

PropertyInfo的问题
在做一个导出数据的时候遇到问题,想将一个列表数据导出到Excel,列表中的属性名都是和数据库对应的英文,而我想在导出后用中文作为对应属性的Excel列的列头,如果是直接使用属性名,代码很简单:
foreach (var p in typeof(T).GetProperties())
                    {
                        worksheet.Cells[1, col].Value = p.Name;

                        col++;
                    }
其中T就是要导出列表记录的类型,有没有办法给属性设置Attribute,就像MVC的model可以设置DisplayName,然后在这里获取啊?
求解,顺祝各位辛勤的程序猿马年一帆风顺!
------解决方案--------------------
System.Attribute[] attrs = System.Attribute.GetCustomAttributes(p);

        foreach (System.Attribute attr in attrs)
        {
            if (attr is 你定义的Attribute)
            {
...
            }
        }
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
------解决方案--------------------
不能用Attr的话就做mapper呗
Mapper map;
map.GetName(proName)