Example #1
0
        private void AddProto(XElement e)
        {
            ValidAttrKeys(e, protoAttrs, protoRequiredAttrs);

            var p = new PProto()
            {
                Name      = XmlUtil.GetRequiredAttribute(e, "name"),
                Namespace = CurNamespace,
                Id        = XmlUtil.GetOptionIntAttribute(e, "id"),
            };

            foreach (XElement fe in e.Elements())
            {
                switch (fe.Name.LocalName)
                {
                case "var":
                {
                    p.Fields.Add(CreateField(fe));;
                    break;
                }

                default:
                {
                    throw new Exception($"定义文件:{CurImportFile} 不支持 tag:{fe.Name}");
                }
                }
            }

            s_logger.Trace("add proto:{@proto}", p);
            _protos.Add(p);
        }
Example #2
0
        public DefProto(PProto b)
        {
            Name      = b.Name;
            Namespace = b.Namespace;
            Id        = b.Id;

            foreach (var field in b.Fields)
            {
                Fields.Add(new DefField(this, field, 0));
            }
        }