一、C# 反射 类操作
1.方式1
//1.获取对象所有的属性名
Student stu = new Student();
//获取当前类名称
Console.WriteLine(stu.GetType().Name);
//命名空间 和名称
Console.WriteLine(stu.GetType().FullName);
2.方式2
//2.指定类型,动态创建对象
Student stu2 = Activator.CreateInstance<Student>();
Console.WriteLine(stu2.ToJsonString());
二、C# 反射 属性操作PropertyInfo
1. 获取属性
//反射属性操作 方式二
Student stu = new Student();
Type t = stu.GetType();
/*****操作所有属性*****/
//1.获取指定名称的属性
PropertyInfo[] pro2 = t.GetProperties();
foreach (PropertyInfo item in pro2)
{
//Name----属性名称
//PropertyType----字段类型 例如:System.Int32
Console.WriteLine(item.Name + "--->" + item.MemberType + "--->" + item.PropertyType);
}
2. 设置属性的值 setvalue
//2.获取或设置属性的值
foreach (PropertyInfo item in pro2)
{
object value = null;
if (item.Name == "ID")
value = 1;
else
value = "张三";
item.SetValue(stu, value);
//获取属性值
Console.WriteLine(item.GetValue(stu));
}
/**操作单个属性***/
PropertyInfo id = t.GetProperty("ID");
id.SetValue(stu,2);
Console.WriteLine(id.GetValue(stu));
更多: