System.Runtime.Emit namespace provides necessary classes to create an executable (.EXE) file on-the-fly.
After compiling this code sample and run it on the Console. A new file is generated in your folder called TestAsm.exe. This EXE file print's a message "Hello World" on the Console.
using System; using System.Runtime; using System.Runtime.Emit; class RuntimeEmit {
public static void Main(String [] args) { AppDomain ad = AppDomain.CurrentDomain; AssemblyName am = new AssemblyName(); am.Name = "TestAsm";
AssemblyBuilder ab = ad.DefineDynamicAssembly(am,AssemblyBuilderAccess.Save); ModuleBuilder mb = ab.DefineDynamicModule("testmod","TestAsm.exe"); TypeBuilder tb = mb.DefineType("mytype",TypeAttributes.Public); MethodBuilder metb = tb.DefineMethod("hi",MethodAttributes.Public | MethodAttributes.Static,null,null); mb.SetEntryPoint(metb); ILGenerator il = metb.GetILGenerator(); il.EmitWriteLine("Hello World"); il.Emit(OpCodes.Ret); tb.CreateType(); ab.Save("TestAsm.exe"); } }
- Save this file as RuntimeEmit.cs and
- Compile C:/>csc RuntimeEmit.cs
- Run this file C:\>RuntimeEmit
- To run the Exe file generated, here is the command
C:\>TestAsm
|
No responses found. Be the first to respond and make money from revenue sharing program.
|