我有以下课程
public class Statement
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
public string Prop3 { get; set; }
public Narrative Narrative { get; set; }
}
public class Narrative
{
public string Narrative1 { get; set; }
public string Narrative2 { get; set; }
public string Narrative3 { get; set; }
}
我想动态获取Narrative1属性。任何人都可以帮助如何实现这一目标吗?
我知道如何使用reflection获取类的属性名称的值。这里是相同的代码。
public static object ReflectPropertyValue(object source, string property)
{
return source.GetType().GetProperty(property).GetValue(source,null);
}
任何人都可以帮助如何在另一个属性中获取属性的值吗?
由于
答案 0 :(得分:2)
假设你有一个Statement
对象,你可以在你的方法中使用Narrative
属性作为source
。样本:
var statement = new Statement();
// fill properties... change object's state
// get the reference of narrative object
object narrative = ReflectPropertyValue(statement, "Narrative");
// get the value and safe cast it to string
var narrative1Value = ReflectPropertyValue(narrative, "Narrative1") as string;