public static void Run() { var factory = new DelegateFactory(); var action = new CustomAction<int>(delegate { }); // begin var d = factory.Create(action); // end d.DynamicInvoke(42); }