111,129
社区成员
发帖
与我相关
我的任务
分享
var methodDelegate = Delegate.CreateDelegate(GetMethodDelegateType(proxyClassObj, serviceMethodName),
proxyClassObj, serviceMethodName, false);
private static Type GetMethodDelegateType(object testClass, string methodName)
{
var mi = testClass.GetType().GetMethod(methodName);
var typeArgs = mi.GetParameters().Select(p => p.ParameterType).ToList();
// builds a delegate type
if (mi.ReturnType == typeof(void))
{
return System.Linq.Expressions.Expression.GetActionType(typeArgs.ToArray());
}
typeArgs.Add(mi.ReturnType);
return System.Linq.Expressions.Expression.GetFuncType(typeArgs.ToArray());
}