in targetMethods) { //只挑出virtual的方法 if(targetMethod.IsVirtual) { //得到方法的各个参数的类型 ParameterInfo[] paramInfo = targetMethod.GetParameters(); Type[] paramType = new Type[paramInfo.Length]; for(int i=0;i paramType[i] = paramInfo[i].ParameterType; //传入方法签名,得到方法生成器 MethodBuilder methodBuilder = typeBuilder.DefineMethod(targetMethod.Name,MethodAttributes.Public|MethodAttributes.Virtual,targetMethod.ReturnType,paramType); //由于要生成的是具体类,所以方法的实现是必不可少的。而方法的实现是通过Emit IL代码来产生的 //得到IL生成器 ILGenerator i页码:[1] [2] [3] [4] [5] [6] [7] [8] 第6页、共8页 |