您對myPropertyInfo.GetValue(parParameter) as LambdaExpression
的使用是可疑的,因爲參數和表達式是兩個不同的東西。看起來你在做反思之後混合了你的變量。下面是一個可能有助於澄清事情的例子:
class Type1 { public string Name { get; set; } }
class Data { public Expression<Func<Type1, string>> Ex { get; set; } }
class Program
{
static void Main(string[] args)
{
var d = new Data { Ex = t => t.Name };
var pi = d.GetType().GetProperties().Single();
var ex = pi.GetValue(d) as LambdaExpression;
Console.WriteLine(pi.GetValue(d).GetType());
Console.WriteLine(ex);
Console.WriteLine(ex.Parameters.Single());
}
}
可能你可以把'dynamic'用在這裏很好用嗎? – Fabjan
請顯示您目前爲止的代碼,以便更容易地查看問題的發生位置。你知道編譯時'Type1'和'string'的類型嗎?我不確定,但我認爲從表達式>不是'LambdaExpresssion'_。你想用這個價值做什麼? –