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); }
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)); } }