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)));
}
}
}
}