浇铸

博客园 首页 新随笔 联系 订阅 管理

今天项目中有个功能要求得到多个数据类型实例的信息,如果通过大量判断和手工代码,将会是件很痛苦的工作.但是我使用反射得到实例类型,属性

名称,属性值,乃至方法名称这样就能使用很少的代码完成更多的事情.

假定有one,two,three三个不同结构对象需要展示数据,将它们的属性值一项项调用展示这样需要至少做三次,而如果对象属性够多的话,除开累之外,相信也更加容易出错.

其实要做的事情无非就是三步,第一,得知需要展示的对象的类型结构,第二,得到各属性值,第三,展示数据.

但是你有了实例,如何利用微软封装好的方法最优的完成第一二步呢?

现在我将Demo关键代码贴在下面,希望看后能够对大家有所帮助.

namespace UseAssemblyClassExample
{
public class Test1
{
public Test1()
{
id = 0;
name = "hhj";
age = "20";
time = DateTime.Now;
}
public int id { get; set; }
public string name { get; set; }
public string age { get; set; }
public DateTime time { get; set; }
}
}

public void WriteData()

{

 object obj = Assembly.Load("UseAssemblyClassExample").CreateInstance("UseAssemblyClassExample.Test1");
System.Type type = obj.GetType();
PropertyInfo[] propertyies = type.GetProperties();
foreach (PropertyInfo pro in propertyies)
{
  Console.Wirte(pro.Name + " 值: " + pro.GetValue(obj, null) + " 数据类型:" + pro.PropertyType.ToString() + System.Environment.NewLine);
  }

}

 

输出结果

id 值: 0 数据类型:System.Int32
name 值: hhj 数据类型:System.String
age 值: 20 数据类型:System.String
time 值: 2010/5/17 22:34:01 数据类型:System.DateTime

posted on 2010-05-17 22:39  浇铸  阅读(878)  评论(0编辑  收藏  举报