컴파일 된 표현식 만들기를 호출 할 때 결과로 컴파일 된 대리자에서 CreateDelegate를 호출하려고하지만 설명이있는 NotSupportedException을 찾습니다. 파생 클래스가 구현을 제공해야합니다. 컴파일 된 메서드에 대한 대리자는 어떻게 만듭니 까?CreateDelegate 파생 클래스가 구현을 제공해야합니다.
public delegate int AddOne(int input);
void Main()
{
var input = Expression.Parameter(typeof(int));
var add = Expression.Add(input,Expression.Constant(1));
var lambda = Expression.Lambda(typeof(AddOne),add,input);
var compiled = (AddOne)lambda.Compile();
compiled.Method.CreateDelegate(typeof(AddOne));
}
아직 실제입니다. 또한, 컴파일 된 델리게이트의 MethodInfo를 가져 와서 내 strucutres에 저장 한 다음 다시 호출하도록 MethodInfo를 "다시 캐스팅"해야합니다. 이 코드는 제대로 작동하지만 작동하지 않아야하며 '파생 클래스가 구현을 제공해야 함'오류가 분명하지 않습니다. –