博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
玩玩反射 - 刚写的一个动态获取属性值的例子
阅读量:5859 次
发布时间:2019-06-19

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

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ReflectionTest{    public class Employee    {        public string Name { get; set; }        public int Age { get; set; }    }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Reflection;namespace ReflectionTest{    public class GenericReflectionHelper
{ public static List
GetListString(List
srcList, Dictionary
keyDict) { string row = string.Empty; int i = 0; List
result = new List
(); foreach (T elem in srcList) { Type type = elem.GetType(); row = string.Empty; i = 0; foreach (KeyValuePair
dictElem in keyDict) { PropertyInfo propertyInfo = type.GetProperty(dictElem.Key); string rowValue = propertyInfo.GetValue(elem, null).ToString(); if (i == 0) row += dictElem.Value + ": " + rowValue; else row += ", " + dictElem.Value + ": " + rowValue; i++; } result.Add(row); } return result; } }}

call method:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ReflectionTest{    class Program    {        static void Main(string[] args)        {            List
employees = new List
(); employees.Add(new Employee { Name = "David", Age = 33 }); employees.Add(new Employee { Name = "Neil", Age = 34 }); employees.Add(new Employee { Name = "Tony", Age = 27 }); Dictionary
dict = new Dictionary
(); dict.Add("Name", "姓名"); dict.Add("Age", "年龄"); List
result = GenericReflectionHelper
.GetListString(employees, dict); foreach(string row in result) Console.WriteLine(row); } }}

运行结果:

姓名: David, 年龄: 33
姓名: Neil, 年龄: 34
姓名: Tony, 年龄: 27

 

 

转载地址:http://cirjx.baihongyu.com/

你可能感兴趣的文章
Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
查看>>
传感器
查看>>
oracle中ddl为什么不能回滚
查看>>
vi tab和空格互相转换
查看>>
MongoMapper中的update方法
查看>>
android中禁止横竖屏切换
查看>>
你可能不知道的10个JavaScript小技巧
查看>>
Java对excel解析 兼容2003与2007
查看>>
android 悬浮窗 使用问题
查看>>
JSP页面表单自动清空方法
查看>>
很好看的表格样式
查看>>
JNI实战:读取布卡漫画本地图片
查看>>
MySQL innodb_rollback_on_timeout参数对锁的影响
查看>>
GPT分区下安装win7_64位系统
查看>>
Accordion file navigation
查看>>
DVSlideViewController
查看>>
spark技巧
查看>>
NoSQL精粹读书笔记-第2章
查看>>
YUM常用命令大全
查看>>
跟谁一起工作,到底有多重要?
查看>>