0

私はオブジェクトを持っています

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

私はいつもnullになります。どうすれば入手することができますか?

注: 問題は、どのオブジェクトが含まれるかわかりません。しかし、私が知っているのは、「Emp.Name」などの内部オブジェクトで正確な名前を取得することだけです。一般的な解決策が必要です

4

1 に答える 1

2
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オブジェクトを取得してからNameのを取得しますEmployee

コードの範囲が異なる場合を除き、このインスタンスでできることの利点はわかりませんがstring empName = schl.Employee.Name

于 2013-05-07T10:41:07.183 に答える