/// <summary> /// 撤消信息 /// </summary> /// <param name="infoAction">带信息功能的对象</param> /// <returns></returns> public static bool RevokeInfo(LocalInfoReceiver infoAction) { if (infoAction == null) { return(false); } // 清理字典 List <String> keys = _ActionDict.Keys.ToList <String>(); foreach (String key in keys) { var item = _ActionDict[key]; if (item.Exists(o => o == infoAction)) { item.Remove(infoAction); } if (item.Count == 0) { _ActionDict.Remove(key); } } LogHelper.Info(typeof(LocalInfoHelper).FullName, infoAction.GetType().FullName + "撤消本地信息"); return(true); }
/// <summary> /// 注册信息 /// </summary> /// <param name="infoAction">带信息功能的对象</param> /// <param name="infoCodeList">需要注册的信息列表</param> /// <returns></returns> public static bool RegisterInfo(LocalInfoReceiver infoAction, List <String> infoCodeList) { if (infoAction == null || infoCodeList.Count == 0) { LogHelper.Warn(typeof(LocalInfoHelper).FullName, "注册时对象不能空或没有接受信息代码"); return(false); } foreach (String code in infoCodeList) { if (!_ActionDict.ContainsKey(code)) // 信息代码不存在 { _ActionDict.Add(code, new List <LocalInfoReceiver>()); } // 是否已经存在,不存在新加入 List <LocalInfoReceiver> lst = _ActionDict[code]; if (!lst.Exists(o => o == infoAction)) { lst.Add(infoAction); } } LogHelper.Info(typeof(LocalInfoHelper).FullName, infoAction.GetType().FullName + "注册本地信息,代码:" + string.Join(",", infoCodeList.ToArray())); return(true); }
/// <summary> /// 注意:调用前子类必须设置好_infoCodeList。 /// </summary> /// <returns></returns> public override bool Init() { _InfoAction = new LocalInfoReceiver(_InfoCodeList, CallbackInfo); return(base.Init()); }