private MethodInfo BuildMethod(GenericMehodInfo method, TypeInfo[] types, ClassType where) { var gRet = method.ret as GenericType; var realRetType = gRet != null ? types[gRet.Number].Generic(gRet.Number) : method.ret; var res = new MethodInfo(method.name, realRetType, method.isStatic, where); foreach (var item in method.args) { var gtype = item.Type as GenericType; TypeInfo varType; if (gtype != null) { varType = types[gtype.Number].Generic(gtype.Number); } else { varType = item.Type; } res.AddArg(item.Name, varType); //res.GenericArgs.Add(gtype != null ? gtype.Number : -1); } return(res); }
protected void BuildMethod(ClassType classType, System.Reflection.MethodInfo methodInfo) { var retType = storage.GetType(ConvertMSILNames(methodInfo.ReturnType)); var args = methodInfo.GetParameters() .ToList() .Select(x => new { Type = storage.GetType(ConvertMSILNames(x.ParameterType)), Name = x.Name }); if (!args.Any(x => x.Type == null)) { var method = new plsql_msil.Types.MethodInfo(methodInfo.Name, retType, methodInfo.IsStatic, classType); foreach (var item in args) { method.AddArg(item.Name, item.Type); } classType.AddMethod(method); } }