コード例 #1
0
        /// <summary>
        /// 增加SubTagGroup对象
        /// </summary>
        /// <param name="group">SubTagGroup对象</param>
        public override void Add(CustomSubTagGroup group)
        {
            if (!(group is SiemensSubTagGroup))
            {
                throw new Exception("group对象必须是SiemensSubTagGroup对象");
            }

            SiemensSubTagGroup sGroup = group as SiemensSubTagGroup;

            if (sGroup.Parent != _parent)
            {
                throw new Exception("group对象隶属的TagGroup和当前SubTagGroup集合不是同一个TagGroup");
            }

            if (_groups.Keys.Contains(sGroup.Prefix))
            {
                throw new Exception($"当前SubTagGroup集合中已经存在前缀[{sGroup.Prefix}]的SubTagGroup!");
            }

            _groups.Add(sGroup.Prefix, group);
        }
コード例 #2
0
        /// <summary>
        /// 查找指定的Tag
        /// </summary>
        /// <param name="name">标记组名称</param>
        /// <param name="tagName">标记名称</param>
        /// <returns>查找到的CustomTag对象,若没有找到则返回null</returns>
        public override CustomTag FindTag(string name, string tagName)
        {
            if (name == "" || tagName == "")
            {
                return(null);
            }

            string[] names        = name.Split('.');
            string   groupName    = names[0];
            string   subGroupName = names.Length >= 2 ? names[1] : "";

            CustomTagGroup group = _groups[groupName];

            if (group == null)
            {
                return(null);
            }
            else
            {
                if (subGroupName == "")
                {
                    return(((SiemensTagGroup)group).Tags[tagName]);
                }
                else
                {
                    CustomSubTagGroup subGroup = ((SiemensTagGroup)group).SubGroups[subGroupName];
                    if (subGroup == null)
                    {
                        return(null);
                    }
                    else
                    {
                        return(((SiemensSubTagGroup)subGroup).Tags[tagName]);
                    }
                }
            }
        }