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