我尝试使用Expression类创建委托类型,但是当我尝试从MethodInfo的实例中创建委托时,出现了ArgumentException异常。我使用的是.NET 4.0版本。
以下是代码:
var method = /*...*/;
List<Type> tArgs = new List<Type> { method.ReturnType };
var mparams = method.GetParameters();
mparams.ToList().ForEach(p => tArgs.Add(p.ParameterType));
var delDecltype = Expression.GetDelegateType(tArgs.ToArray());
return Delegate.CreateDelegate(delDecltype, method);
P.S. 抱歉我的英语不太好 ;)