Пример #1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="parent"></param>
 /// <param name="genericMenuItemAttribute"></param>
 /// <param name="methodInfo"></param>
 public GenericMenuItemInfo(GenericMenuItemInfo parent, GenericMenuItemAttribute genericMenuItemAttribute,
                            MethodInfo methodInfo)
 {
     name          = genericMenuItemAttribute.names[genericMenuItemAttribute.currentNameIndex];
     this.parent   = parent;
     this.itemName = genericMenuItemAttribute.itemName;
     genericMenuItemAttribute.currentNameIndex++;
     Update(genericMenuItemAttribute, methodInfo);
 }
Пример #2
0
        /// <summary>
        /// subNamesLenght>=1的情况
        /// </summary>
        /// <param name="genericMenuItemAttribute"></param>
        /// <param name="methodInfo"></param>
        public void SubNamesLengthGreaterThanOrEquals_1_Condition(GenericMenuItemAttribute genericMenuItemAttribute,
                                                                  MethodInfo methodInfo)
        {
            string firstSubName        = genericMenuItemAttribute.names[genericMenuItemAttribute.currentNameIndex];
            GenericMenuItemInfo target = children.Find(e => e.name.Equals(firstSubName));

            if (target == null)
            {
                children.Add(new GenericMenuItemInfo(this, genericMenuItemAttribute, methodInfo));
            }
            else
            {
                genericMenuItemAttribute.currentNameIndex++;
                target.Update(genericMenuItemAttribute, methodInfo);
            }
        }
Пример #3
0
        /// <summary>
        /// 获取NamePath,相对于relativeToNamePath
        /// </summary>
        /// <param name="relativeNamePath"></param>
        /// <returns></returns>
        public string GetNamePath(string relativeNamePath)
        {
            GenericMenuItemInfo iterator = this;
            StringBuilder       sb       = new StringBuilder(iterator.name);

            while (iterator.parent != null)
            {
                iterator = iterator.parent;
                if (iterator.name.Equals(relativeNamePath))
                {
                    break;
                }
                sb.Insert(0, string.Format("{0}/", iterator.name));
            }

            return(sb.ToString());
        }