public static void Main()
var bf = BindingFlags.Static | BindingFlags.Public | BindingFlags.InvokeMethod;
typeof(Program).InvokeMember("LateBoundTarget", bf, null, null, null);
} catch(TargetInvocationException e) {
Console.WriteLine("fail");
} catch(InvalidOperationException e) {
Console.WriteLine("success");
public static void LateBoundTarget() {
throw new InvalidOperationException();