Advertisement
Guest User

Untitled

a guest
Apr 25th, 2014
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. //Wrap the program into a block expression
  2. Expression code = Expression.Block(new ParameterExpression[] { env, voidSingleton}, program);
  3.  
  4. var asmName = new AssemblyName("Foo");
  5. var asmBuilder = AssemblyBuilder.DefineDynamicAssembly(asmName, AssemblyBuilderAccess.RunAndSave);
  6. var moduleBuilder = asmBuilder.DefineDynamicModule("Foo", "Foo.exe");
  7. var typeBuilder = moduleBuilder.DefineType("Program", TypeAttributes.Public);
  8.  
  9. var methodBuilder = typeBuilder.DefineMethod("Main",
  10. MethodAttributes.Static, typeof(void), new[] { typeof(string) });
  11.  
  12. Expression.Lambda<Action>(code).CompileToMethod(methodBuilder);
  13.  
  14. typeBuilder.CreateType();
  15. asmBuilder.SetEntryPoint(methodBuilder);
  16. asmBuilder.Save("Foo.exe");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement