public static void Invoke(Object actionobj, NetClient client, Object message) { lock (mActions) { Type key = actionobj.GetType(); ControllerAction action = null; if (!mActions.TryGetValue(key, out action)) { action = new ControllerAction(key); mActions[key] = action; } action.Invoke(actionobj, client, message); } }