System.Reflection.AssemblyName assemblyName = new System.Reflection.AssemblyName();
            assemblyName.Name = "ABC";
            AppDomain appDomain = System.Threading.Thread.GetDomain();            System.Reflection.Emit.AssemblyBuilder assemblyBuilder = appDomain.DefineDynamicAssembly(assemblyName, System.Reflection.Emit.AssemblyBuilderAccess.Run);
            System.Reflection.Emit.ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("myModle");
            System.Reflection.Emit.TypeBuilder typeBuilder = moduleBuilder.DefineType("myClass", System.Reflection.TypeAttributes.Public & System.Reflection.TypeAttributes.Class);            //给class添加方法
            Type ret = typeof(System.String);            System.Reflection.Emit.MethodBuilder methodBuilder = typeBuilder.DefineMethod("Sum", System.Reflection.MethodAttributes.Public, ret, null);
            System.Reflection.Emit.ILGenerator gen = methodBuilder.GetILGenerator();
            gen.Emit(System.Reflection.Emit.OpCodes.Ldstr, "abc");
            gen.Emit(System.Reflection.Emit.OpCodes.Stloc_0);
            gen.Emit(System.Reflection.Emit.OpCodes.Br_S);      //无条件地将控制转移到目标指令(短格式)
            gen.Emit(System.Reflection.Emit.OpCodes.Ldloc_0);   //将索引 0 处的局部变量加载到计算堆栈上
            gen.Emit(System.Reflection.Emit.OpCodes.Ret);       //从当前方法返回,并将返回值(如果存在)从调用方的计算堆栈推送到被调用方的计算堆栈上            Type t = typeBuilder.CreateType();            object obj = System.Activator.CreateInstance(t);
            object result = t.InvokeMember("Sum", System.Reflection.BindingFlags.InvokeMethod, null, obj, null);
上面是对应
 public string Sum()
{
   return "abc";
}的,很简单,但总是出错,为啥咛?烦劳高手点拨开窍,感激涕零!