如何遍历一个实例的所有属性,得到属性的名称和值
利用反射。
static void Main(string[] args)
{
MoneyHome.Class.DataOperate d = new MoneyHome.Class.DataOperate();//实例
Type t = d.GetType();
MessageBox.Show(t.Namespace,"DataOperate类的命名空间");
MessageBox.Show(t.IsClass.ToString(),"DataOperae是不是一个类");
MemberInfo[] m = t.GetMembers();
StringBuilder st = new StringBuilder(800);
foreach(MemberInfo m1 in m)
{
st.Append("Members: ");
st.Append(m1.ToString());
st.Append("/n");
}
所有的属性你可以做一个foreach 同样的道理,你可以通过 t.GetProperty("xxx").GetSetMethod()来设置值
Type type = this.GetType(); PropertyInfo [] pInfos = type.GetProperties(); foreach ( PropertyInfo pInfo in pInfos )
{
Console.WriteLine( pInfo.Name );
pInfo.GetValue(this,null)//这就是属性的值
}
我这里没有问题,是可以运行的
Type t = this.GetType();
PropertyInfo[] arrpf= t.GetProperties();
foreach(PropertyInfo p in arrpf)
{
MethodInfo mii = t.GetProperty(p.Name).GetGetMethod();
Console.WriteLine(mii.Invoke(this,null));
}