當調用創建編譯expressiong我想打電話給createDelegate方法對所得編譯代表,但我geeting 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,將其保存在我的結構中,然後「重新投射」MethodInfo再次進行委派。這段代碼應該可以工作,但它不''和''派生類必須提供實現'的性質'錯誤尚不清楚。 –