public string ToShortDateString_Subst() { Console.WriteLine("--- Struct methods interception --- "); Console.WriteLine("--- DateTime.ToShortDateString ---"); Console.Write("Calling original method... "); var result = (string)_handle.InvokeTarget(this, null); Console.WriteLine("result: " + result); return("Current date is: " + result); }
public static string GetEnvironmentVariable_Subst(string name) { Console.WriteLine("--- Static method interception --- "); Console.WriteLine("--- Environment.GetEnvironmentVariable ---"); Console.Write("Calling original method... "); var result = (string)_handle.InvokeTarget(null, name); Console.WriteLine("result: " + result); // replace return value return("replaced value"); }
public void Host_Subst(string value) { Console.WriteLine("--- Instance property setter interception --- "); Console.WriteLine("--- UriBuilder.Host ---"); Console.WriteLine("Calling original method... "); // note: this.GetType() == typeof(UriBuilder) _handle.InvokeTarget(this, value); Console.WriteLine("Modifying instance... "); // add some additional data to UriBuilder instance ((UriBuilder)((object)this)).Port = 8080; }
public bool Exists_Subst() { Console.WriteLine("--- Instance property getter interception --- "); Console.WriteLine("--- DirectoryInfo.Exists ---"); Console.Write("Calling original method... "); // note: this.GetType() == typeof(DirectoryInfo) bool result = (bool)_handle.InvokeTarget(this, null); Console.WriteLine("result: " + result); Console.WriteLine(); // replace return value return(false); }