好应用...(首先编译这个应用程序)
using System; namespace App { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } }
BadApp ...(将上述应用程序包含为嵌入式资源)
using System; using System.IO; using System.Reflection; namespace BadApp { class Program { static void Main(string[] args) { Console.WriteLine("do bad"); Assembly good = null; var ea = Assembly.GetExecutingAssembly(); using (var rs = ea.GetManifestResourceStream(ea.GetManifestResourceNames()[0])) using (var ms = new MemoryStream()) { rs.CopyTo(ms); good = Assembly.Load(ms.ToArray()); } var ep = good.EntryPoint; ep.Invoke(null, new [] {args}); Console.WriteLine("ha ha too late"); } } }
...运行BadApp的输出
do bad Hello World! ha ha too late