/// <summary>
        /// 删除菜单项,及其所有子项
        /// </summary>
        /// <param name="code"></param>
        public void Delete(MenuEntity entity)
        {
            Debug.Assert(entity != null, "menuEntity 为 null");

            if (entity == null)
            {
                return;
            }

            //移除索引信息
            XElement element = _indexXml.XPathSelectElement(String.Format(XPATH_Index_SelectMenuStrip, entity.Id));

            Debug.Assert(element != null, "删除主菜单索引时未找到指定主菜单的索引记录");
            if (element != null)
            {
                element.Remove();
                SaveIndexFile();

                //移除实体文件
                _packageService.Current.DeleteFile(Path.Combine(Constant.PACKAGE_NAVIGATION_MENUSTRIP_FOLDER, entity.Id));

                _cachingService.Remove(entity.Id);

                //通过递归删除所有子菜单项
                DeleteChild(entity.Id);

                //发布事件
                MenuStripEventArgs args = new MenuStripEventArgs(entity);
                _eventAggregator.GetEvent <MenuStripItemRemovedEvent>().Publish(args);
            }
        }
        /// <summary>
        /// 更新(编辑)一个菜单项
        /// </summary>
        /// <param name="entity"></param>
        public void Update(MenuEntity entity)
        {
            Debug.Assert(entity != null, "mainMenuEntity 为 null");

            if (entity == null)
            {
                return;
            }

            //更新索引信息
            XElement element = _indexXml.XPathSelectElement(String.Format(XPATH_Index_SelectMenuStrip, entity.Id));

            Debug.Assert(element != null, "更新主菜单索引时未找到指定主菜单的索引记录");
            if (element != null)
            {
                element.ReplaceWith(GetArchiveIndex(entity));
                SaveIndexFile();

                string   xml      = entity.ToXml();
                XElement xElement = XElement.Parse(xml);

                //更新实体文件
                _packageService.Current.AddFileContent(xml,
                                                       Path.Combine(Constant.PACKAGE_NAVIGATION_MENUSTRIP_FOLDER, entity.Id));

                _cachingService.Add(entity.Id, xElement);

                //发布事件
                MenuStripEventArgs args = new MenuStripEventArgs(entity);
                _eventAggregator.GetEvent <MenuStripItemUpdatedEvent>().Publish(args);
            }
        }
        /// <summary>
        /// 添加一个菜单项
        /// </summary>
        /// <param name="entity"></param>
        public void Add(MenuEntity entity)
        {
            Debug.Assert(entity != null, "MenuEntity 为 null");

            if (entity == null)
            {
                return;
            }

            //添加索引信息
            _indexXml.XPathSelectElement(XPATH_Index_MenuStrip).Add(GetArchiveIndex(entity));

            SaveIndexFile();

            string   xml      = entity.ToXml();
            XElement xElement = XElement.Parse(xml);

            //添加数据实体文件
            _packageService.Current.AddFileContent(xml,
                                                   Path.Combine(Constant.PACKAGE_NAVIGATION_MENUSTRIP_FOLDER, entity.Id));

            _cachingService.Add(entity.Id, xElement);

            //发布事件
            MenuStripEventArgs args = new MenuStripEventArgs(entity);

            _eventAggregator.GetEvent <MenuStripItemAddedEvent>().Publish(args);
        }