using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TProduct.ProcessDrawing.Common { public class ActionManager { private ActionManager() { } static Dictionary actionMap = new Dictionary(); public static void Register(string key, Delegate d) { if (!actionMap.ContainsKey(key)) actionMap.Add(key, d); } // 单执行 public static void Execute(string key, T data) { if (actionMap.ContainsKey(key)) actionMap[key].DynamicInvoke(data); } // 执行并返回状态 public static bool ExecuteAndResult(string key, T data) { if (actionMap.ContainsKey(key)) { var action = (actionMap[key] as Func); if (action == null) return false; return action.Invoke(data); } return false; } } }