Ich habe folgende zwei KlassenHolen Eigenschaft Wert von Verschachtelte Klassen ist immer null
public class Family
{
public string ChildName { get; set; }
}
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public Family Child { get; set; }
}
ich eine Instanz der Klasse Employee wie folgt aufweisen.
Employee employee = new Employee();
employee.Name = "Ram";
employee.Id = 77;
employee.Child = new Family() { ChildName = "Lava" };
Ich habe eine Methode, die den Eigenschaftswert auf der Grundlage der Eigenschaftsname wird wie folgt dar:
public static object GetPropertyValue(object src, string propName)
{
string[] nameParts = propName.Split('.');
if (nameParts.Length == 1)
{
return src.GetType().GetRuntimeProperty(propName).GetValue(src, null);
}
foreach (String part in nameParts)
{
if (src == null) { return null; }
Type type = src.GetType();
PropertyInfo info = type.GetRuntimeProperty(part);
if (info == null)
{ return null; }
src = info.GetValue(src, null);
}
return src;
}
Bei dem obigen Verfahren, wenn ich versuche, Eigenschaftswert von verschachtelten Klasse zu erhalten wie
GetPropertyValue(employee, "employee.Child.ChildName")
oder
GetPropertyValue(GetPropertyValue(employee, "Family"), "ChildName"
gibt keinen Wert zurück, da type.GetRuntimeProperty(part)
immer Null ist.
Gibt es eine Möglichkeit, dieses Problem zu beheben?