public EventObserver(string register, Define.ActionTypeEnum registAction, string publisher, Action <object> action) { Register = register; RegistAction = registAction; Publisher = publisher; ActionParam = action; }
public static void Regist(string register, string publisher, Define.ActionTypeEnum registAction, Action <object> callBackAction) { var currentRegister = RegisterList.FirstOrDefault(s => s.Register == register && s.RegistAction == registAction && s.Publisher == publisher); if (currentRegister == null) { currentRegister = new EventObserver(register, registAction, publisher, callBackAction); RegisterList.Add(currentRegister); } else { currentRegister.ActionParam = callBackAction; } }
public static void PulishAction(string publish, Define.ActionTypeEnum publishAction, object data = null) { var listAction = RegisterList.Where(s => s.Publisher == publish && s.RegistAction == publishAction).ToList(); foreach (var item in listAction) { if (data == null) { item.Action(); } else { item.ActionParam(data); } } }