Ben garip ama sadece tekmeler için soruyorum biliyorum, bir lambda ifade için MethodInfo
almak mümkün mü?Bir lambda ifadesi için MethodInfo alın
(Func<int, string>(i => i.ToString())).MethodInfo
GÜNCELLEME Ben bakılmaksızın Lamda gövdesi bir yöntem çağrısı ifadesidir olup olmamasından yöntem bilgi almak isteyen , yani bakılmaksızın:
Böyle bir şeyden sonra ben lambda'nın bedeni ne tür bir ifade. Örneğin, örn.
Bu işe yarayabilir.
var intExpression = Expression.Constant(2);
Expression<Func<int, Dog>> conversionExpression = i => Program.GetNewDog(i);
var convertExpression5 = Expression.ConvertChecked(intExpression, typeof(Dog), ((MethodCallExpression)(conversionExpression.Body)).Method);
class Program
{
static Dog GetNewDog(int i)
{
return new Dog();
}
}
Ama bu bile çalışmak istiyorum:
var intExpression = Expression.Constant(2);
Expression<Func<int, Dog>> conversionExpression = i => new Dog();
var convertExpression5 = Expression.ConvertChecked(intExpression, typeof(Dog), /*...???... */);
Bir ifadenin bir yöntem bilgisi yoktur. Derleme yaparsanız, delege yönteminden bilgi alabilirsiniz. – leppie
Bir ifade oluşturmayla ilgilenmiyorum. Güncellemeyi Timothy Shields'ın yanıtına cevaben ekledim. Tek istediğim bir temsilci tarafından bir methodInfo. Mümkün? –
Bu iyi çalışıyor (yeni Func (i => i.ToString())) Yöntem ' –
leppie