在C#中,想象我有以下对象:
var myObject = new
{
Val = new[]
{
new { ArrVal = "three1"},
new { ArrVal = "three2"}
}
};
如何针对该对象动态评估以下表达式? (表达式是一个字符串)
"Val[1].ArrVal"
在这种情况下,我希望表达式返回“three2”。我想写一个带有以下签名的方法:
object GetValue(string expression, object objectToExtractValueFrom)
我可以使用反射进行此操作,还是以某种方式使用动态关键字?
答案 0 :(得分:2)
您无法使用反射或动态关键字来执行此操作。你能做的是:
答案 1 :(得分:0)
示例:
ExpressionEvaluator.GetValue("Test", "Length.ToString().Length");
ExpressionEvaluator.GetValue(null, "DateTime.Now")