Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Wrap the program into a block expression
- Expression code = Expression.Block(new ParameterExpression[] { env, voidSingleton}, program);
- var asmName = new AssemblyName("Foo");
- var asmBuilder = AssemblyBuilder.DefineDynamicAssembly(asmName, AssemblyBuilderAccess.RunAndSave);
- var moduleBuilder = asmBuilder.DefineDynamicModule("Foo", "Foo.exe");
- var typeBuilder = moduleBuilder.DefineType("Program", TypeAttributes.Public);
- var methodBuilder = typeBuilder.DefineMethod("Main",
- MethodAttributes.Static, typeof(void), new[] { typeof(string) });
- Expression.Lambda<Action>(code).CompileToMethod(methodBuilder);
- typeBuilder.CreateType();
- asmBuilder.SetEntryPoint(methodBuilder);
- asmBuilder.Save("Foo.exe");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement