Expression<Func<T, string>>
유형의 매개 변수를 사용하여 메소드를 호출하려고하는데 빌드 한 표현식 트리에서 메소드 호출을 허용하지 않습니다. 다음은 짧지 만 완전한 프로그램이 문제를 보여주는 것 :특정 서명으로 표현식을 작성하려면 어떻게해야합니까?
using System;
using System.Linq.Expressions;
public class Test
{
public string Name { get { return ""; } }
public static void Main()
{
Foo<Test>();
}
static void Foo<T>()
{
var parameter = Expression.Parameter(typeof(T), "t");
var property = Expression.Property(parameter, "Name");
var lambda = Expression.Lambda(property, parameter);
Bar<T>(lambda);
}
static void Bar<T>(Expression<Func<T, string>> expression) {}
}
오류 :
error CS1503: Argument 1: cannot convert from
'System.Linq.Expressions.LambdaExpression' to
'System.Linq.Expressions.Expression<System.Func<T, string>>'
가 어떻게 방법에 내 식 트리를 통과 할 수 있습니까?