c# 利用反射获取属性名和值
class A
{
public string Property1{get;set;}
public int Property2{get;set;}
}
class B
{
public string Property1{get;set;}
public A Property2{get;set;}
}
请问如何通过反射获取class B 的Property2属性(也就是class A)的 属性名和值?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace WindowsApplication26
{
public partial class Form1 : Form
{
class A
{
public string Property1 { get { return "Property1"; } }
public int Property2 { get { return 1; } }
}
class B
{
private A property2=new A();
public string Property1 { get { return "Property1"; } }
public A Property2 { get { return property2; } }
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
B b = new B();
foreach (PropertyInfo info in b.GetType().GetProperty("Property2").GetValue(b, null).GetType().GetProperties())
{
MessageBox.Show(string.Format("{0}={1}",info.Name,info.GetValue(b.Property2,null)));
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace WindowsApplication26
{
public partial class Form1 : Form
{
class A
{
public string Property1 { get { return "Property1"; } }
public int Property2 { get { return 1; } }
}
class B
{
private A property2=new A();
public string Property1 { get { return "Property1"; } }
public A Property2 { get { return property2; } }
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
B b = new B();
foreach (PropertyInfo info in b.GetType().GetProperty("Property2").GetValue(b, null).GetType().GetProperties())
{
MessageBox.Show(string.Format("{0}={1}",info.Name,info.GetValue(b.Property2,null)));
}
}
}
}
浙公网安备 33010602011771号