1
질문이 있습니다. 제네릭 형식 매개 변수를 작성하려면 어떻게해야합니까? 나는 표현 트리를 구축을 위해 노력하고 내가 구축 할 수있는 다음 줄이 : 그래서 내가 .Lambda에서 T의 형식 매개 변수를 지정 것으로 예상된다제네릭 형식 매개 변수를 작성하는 방법
var expression = Expression
.Lambda<Func<T, bool>>(
operation,
new ParameterExpression[] {parameter});
>를하지만의 유형 매개 변수 T는 런타임까지 알 .
도와주세요.
public Expression<Func<T,bool>> BuildExpression<T>(...)
{
// Whatever you need to do
var expression = Expression
.Lambda<Func<T, bool>>(
operation,
new ParameterExpression[] {parameter});
}
을 ... 그리고 반사를 통해 메소드를 호출 감사
답변 해 주셔서 감사합니다. – Luka
답변 해 주셔서 감사합니다. 내가 만들려고하는 것은 도메인에서 쿼리하기 위해 사용자 인터페이스에서 만들어진 쿼리를 변환하는 유틸리티입니다. 문제는 UI가 도메인이 아닌 DTO 클래스 만 인식하므로 linq 표현식 (personDTO x) => x.Name을 (Person x) => x.Name으로 변환해야한다는 것입니다. 어쨌든 표현을 파싱하고 빌드 할 수있었습니다. 남아있는 것은 마지막 단계입니다. Expression.Lambda>. 문제는이 매개 변수가 런타임에 빌드되기 때문에 매개 변수 T - (실제 도메인 개체 (예 :. Person)의 형식 매개 변수)를 모른다는 것입니다. –
Luka
@ 루카 : 글쎄, 좀 더 자세한 정보가 있습니다 - 그리고 마지막 옵션이 여기에 가장 적합하다고 생각합니다. –