我有一个对象
public class School
{
public Employee Emp{get;set;}
public string City{get;set;}
}
public class Employee
{
public string Name{get;set;}
}
使用反射,我需要从学校对象中获取此员工姓名
我试过
School schl=New School();schl.Employee=new Employee{Name="Shalem"};
var empName= schl.GetType().GetProperty("Emp.Name").GetValue(schl, null)
也尝试过
PropertyDescriptorCollection allProp= TypeDescriptor.GetProperties(schl);
var empName=allProp["Emp.Name"].GetValue(schl);
我总是感到空虚。我该怎么走?
注意:问题是我不知道它会包含什么对象。但我所知道的是,我将获得内部对象的确切名称,如"Emp.name"等。需要一个通用解决方案
School schl=New School();
schl.Employee=new Employee{Name="Shalem"};
var emp = schl.GetType().GetProperty("Emp").GetValue(schl, null)
var empName = emp.GetType().GetProperty("Name").GetValue(emp, null);
将其拆分,得到Employee
对象,然后得到Employee
的Name
。
尽管我在这个例子中看不到这样做的好处,当你可以做string empName = schl.Employee.Name
时——除非代码的范围不同?