动态生成代码测试090325
        public static void Main(string[] args)
        {
            AppDomain apdom = Thread.GetDomain();
            AssemblyName an = new AssemblyName("testassambly");
            AssemblyBuilder ab = apdom.DefineDynamicAssembly(an, AssemblyBuilderAccess.RunAndSave);
            ModuleBuilder mb = ab.DefineDynamicModule("testmodule");
            TypeBuilder tb = mb.DefineType("testtype",TypeAttributes.Class);
            MethodBuilder meb = tb.DefineMethod("testmothod", MethodAttributes.Public);
            Type tConsole = typeof(System.Console);
            Type[] ts = new Type[]{typeof(string)};
            MethodInfo mif = tConsole.GetMethod("WriteLine",ts);
            ILGenerator ilg = meb.GetILGenerator();
            ilg.Emit(OpCodes.Nop);
            ilg.Emit(OpCodes.Ldstr,"this is a test mothod...");
            ilg.Emit(OpCodes.Call, mif);
            ilg.Emit(OpCodes.Nop);
            ilg.Emit(OpCodes.Ret);
            Type cc = tb.CreateType();            
            object oo = Activator.CreateInstance(cc);
            object oo1 = cc.InvokeMember("testmothod", BindingFlags.InvokeMethod, null, oo, null);
            Console.Read();
        }
http://www.cnblogs.com/sillyemperor/archive/2008/09/22/1295699.html#FeedBack
DynamicMethod
http://www.cnblogs.com/henryfan/archive/2008/05/21/1204180.html
                    
                
                
            
        
浙公网安备 33010602011771号