public static void Main(string[] args) { var inspector = new AssemblyInspector("../../../HelloWorld/bin/Debug/HelloWorld.exe"); inspector.Method(x => x.FindMethod("HelloWorld.Program", "Main")).Replace("System.Console.WriteLine(\"This is a patched Hello World!\");"); inspector.SaveAs("HelloWorld.Patched.exe"); }
public void Should_Replace_Method_Body_With_Method_Call_And_Method_Call_To_Class_Member() { // patch the assembly var typeLoader = new TypeLoader(); var inspector = new AssemblyInspector(SourceFile, typeLoader); inspector.Method(x => x.FindMethod("HelloWorld.Program", "Main")).Replace("System.Console.WriteLine(GenerateHelloWorld());"); inspector.SaveAs(PatchedFile); // execute the patched assembly var output = RunExecutable(PatchedFile); // validate std out Assert.AreEqual("Hello World\r\n", output); }
public void Should_Replace_Property_Getter_Body() { // patch the assembly var typeLoader = new TypeLoader(); var inspector = new AssemblyInspector(SourceFile, typeLoader); inspector.Property(x => x.FindProperty("HelloWorld.Program", "HelloWorldProperty")).ReplaceGet("return \"This is a Test\";"); inspector.Method(x => x.FindMethod("HelloWorld.Program", "Main")).Replace("System.Console.WriteLine(HelloWorldProperty);"); inspector.SaveAs(PatchedFile); // execute the patched assembly var output = RunExecutable(PatchedFile); // validate std out Assert.AreEqual("This is a Test\r\n", output); }