/// <summary>
        /// 添加事件
        /// </summary>
        /// <param name="Key">唯一键</param>
        /// <param name="MatchName">匹配的名称</param>
        /// <param name="EventType">事件枚举类型</param>
        /// <param name="RegisterMethod">事件注册的方法</param>
        /// <param name="NeedRemove">是否先移除</param>
        internal void Add(object Key, string MatchName, SEEvent EventType, Action <object[]> RegisterMethod, bool NeedRemove = false)
        {
            lock (_mLock)
            {
                if (NeedRemove)
                {
                    Remove(Key, MatchName, EventType);
                }

                if (!_mOccurrenceEventStorage.ContainsKey(Key, MatchName, EventType, out SolidEdgeDocumentEventHelper Helper))
                {
                    _mOccurrenceEventStorage.AddElement(Key, MatchName, EventType, Helper = new SolidEdgeDocumentEventHelper(EventType, RegisterMethod));
                }
                else
                {
                    throw new ArgumentException("重复添加事件:" + EventType.ToString());
                }
                Helper.RegisterSolidEdgeEvent(GetActiveObjectDocument(MatchName));
            }
        }
        /// <summary>
        /// 添加事件
        /// </summary>
        /// <param name="key">唯一键(如果Key是字符串类型,则寻找当前ASM下面匹配的ASM文档)</param>
        /// <param name="EventType">事件枚举值</param>
        /// <param name="RegisterMethod">事件执行方法</param>
        /// <param name="NeedRemove">是否需要移除已存在事件</param>
        internal void Add(object Key, SEEvent EventType, Action <object[]> RegisterMethod, bool NeedRemove = false)
        {
            lock (_mLock)
            {
                //系统事件
                if (CheckSolidEdgeApplicationEvent(Key, EventType, RegisterMethod, true, NeedRemove))
                {
                    return;
                }

                //文档事件
                if (NeedRemove)
                {
                    Remove(Key, EventType);
                }

                SolidEdgeDocumentEventHelper Helper = new SolidEdgeDocumentEventHelper(EventType, RegisterMethod);

                if (!_mDicHelperOfDoc.ContainsKey(Key))
                {
                    _mDicHelperOfDoc.Add(Key, new Dictionary <SEEvent, SolidEdgeDocumentEventHelper>(new EnumComparer <SEEvent>())
                    {
                        [EventType] = Helper
                    });
                }
                else
                {
                    if (!_mDicHelperOfDoc[Key].ContainsKey(EventType))
                    {
                        _mDicHelperOfDoc[Key].Add(EventType, Helper);
                    }
                    else
                    {
                        throw new ArgumentException("重复添加事件:" + EventType.ToString());
                    }
                }

                Helper.RegisterSolidEdgeEvent(GetActiveObjectDocument());
            }
        }