public static void RegisterDelegate(DynamicMethodDefinition dynamicMethod, string delegateFullName) { MethodBase method = dynamicMethod.Generate(); switch (method.Name) { case "UseItemEffect": UseItemEffect.TryAdd(delegateFullName, (Action <Player, Rectangle>)method.CreateDelegate <Action <Player, Rectangle> >()); break; } }