public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { Module.OperaterItem.SubOperaterItem instance = (Module.OperaterItem.SubOperaterItem)context.Instance; Module m = instance.operaterItem.module; return(this.GetStandardValues(m)); }
public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { Module.OperaterItem.SubOperaterItem instance = (Module.OperaterItem.SubOperaterItem)context.Instance; Module module = instance.operaterItem.module; ArrayList list = new ArrayList { Module.OperateType.OP_ASK, Module.OperateType.OP_REPLY, Module.OperateType.OP_CLIENT_NOTIFY, Module.OperateType.OP_SERVER_NOTIFY, Module.OperateType.OP_DUPLEX_NOTIFY }; return(new TypeConverter.StandardValuesCollection(list.ToArray())); }
public static void LookFor(Module m, string names, string shuoming, string t, ref string writesV, ref Save save, int mytype) { DataStruct struct2 = null; if (!DataStruct.DataStructDic.TryGetValue(names, out struct2)) { DataStruct.DataStructDic.TryGetValue(m.ModuleName + names, out struct2); } if (struct2 == null) { struct2 = m.getModuleStruct(names); } if (struct2 != null) { string str = (t == "") ? struct2.getFullName() : (t + "[" + names + "]"); writesV = writesV + str; byte[] bytes = Encoding.Default.GetBytes(struct2.CNName); int length = bytes.Length; bw.Write(length); bw.Write(bytes, 0, length); bw.Write(names.Length); bw.Write(names.ToCharArray(0, names.Length)); Module.OperaterItem.SubOperaterItem subOperaterItem = m.GetSubOperaterItem(names, ""); if (subOperaterItem == null) { bw.Write(false); bw.Write(false); } else if (subOperaterItem.Type == Module.OperateType.OP_ASK) { bw.Write(true); bw.Write(false); writesV = writesV + "↑ " + struct2.CNName; } else if (subOperaterItem.Type == Module.OperateType.OP_REPLY) { bw.Write(false); bw.Write(true); writesV = writesV + "↓ " + struct2.CNName; } else if (subOperaterItem.Type == Module.OperateType.OP_CLIENT_NOTIFY) { bw.Write(true); bw.Write(false); writesV = writesV + "↑ " + struct2.CNName; } else if (subOperaterItem.Type == Module.OperateType.OP_SERVER_NOTIFY) { bw.Write(false); bw.Write(true); writesV = writesV + "↓ " + struct2.CNName; } else { bw.Write(true); bw.Write(true); writesV = writesV + "↑↓ " + struct2.CNName; } writesV = writesV + "\r\n"; bw.Write(mytype); bw.Write(struct2.fieldItem.Count); foreach (DataStruct.FieldDescriptor descriptor in struct2.fieldItem) { bw.Write(names.Length); bw.Write(names.ToCharArray(0, names.Length)); save.Name = descriptor.FieldName; int num2 = save.Name.Length; bw.Write(num2); bw.Write(save.Name.ToCharArray(0, num2)); save.Repet = descriptor.PreDefine == DataStruct.FieldDescriptor.PreDefineType.repeated; bw.Write(save.Repet); save.Value = ""; if ((((descriptor.FieldType == "bool") || (descriptor.FieldType == "float")) || ((descriptor.FieldType == "sint32") || (descriptor.FieldType == "sint64") || (descriptor.FieldType == "uint64"))) && (descriptor.PreDefine == DataStruct.FieldDescriptor.PreDefineType.optional)) { save.Value = "[" + descriptor.DefaultValue + "]"; } num2 = save.Value.Length; bw.Write(num2); bw.Write(save.Value.ToCharArray(0, num2)); save.CNName = descriptor.CNName; byte[] buffer = Encoding.Default.GetBytes(save.CNName); num2 = buffer.Length; bw.Write(num2); bw.Write(buffer, 0, num2); save.Type = descriptor.FieldType; num2 = save.Type.Length; bw.Write(num2); bw.Write(save.Type.ToCharArray(0, num2)); if (descriptor.FieldType == "string") { bw.Write(false); string str3 = writesV; writesV = str3 + t + "\t" + descriptor.FieldName + ":string" + ((descriptor.PreDefine == DataStruct.FieldDescriptor.PreDefineType.repeated) ? "*" : "") + ((descriptor.DefaultValue == "") ? "" : (" = " + descriptor.DefaultValue)) + "\t;" + descriptor.CNName + "\r\n"; } else if (descriptor.FieldType == "bytes") { bw.Write(false); string str4 = writesV; writesV = str4 + t + "\t" + descriptor.FieldName + ":bytes" + ((descriptor.PreDefine == DataStruct.FieldDescriptor.PreDefineType.repeated) ? "*" : "") + ((descriptor.DefaultValue == "") ? "" : (" = " + descriptor.DefaultValue)) + "\t;" + descriptor.CNName + "\r\n"; } else if (descriptor.FieldType == "bool") { bw.Write(false); string str5 = writesV; writesV = str5 + t + "\t" + descriptor.FieldName + ":bool" + ((descriptor.PreDefine == DataStruct.FieldDescriptor.PreDefineType.repeated) ? "*" : "") + ((descriptor.DefaultValue == "") ? "" : (" = " + descriptor.DefaultValue)) + "\t;" + descriptor.CNName + "\r\n"; } else if (descriptor.FieldType == "float") { bw.Write(false); string str6 = writesV; writesV = str6 + t + "\t" + descriptor.FieldName + ":float" + ((descriptor.PreDefine == DataStruct.FieldDescriptor.PreDefineType.repeated) ? "*" : "") + ((descriptor.DefaultValue == "") ? "" : (" = " + descriptor.DefaultValue)) + "\t;" + descriptor.CNName + "\r\n"; } else if (descriptor.FieldType == "sint32") { bw.Write(false); string str7 = writesV; writesV = str7 + t + "\t" + descriptor.FieldName + ":int32" + ((descriptor.PreDefine == DataStruct.FieldDescriptor.PreDefineType.repeated) ? "*" : "") + ((descriptor.DefaultValue == "") ? "" : (" = " + descriptor.DefaultValue)) + "\t;" + descriptor.CNName + "\r\n"; } else if (descriptor.FieldType == "sint64") { bw.Write(false); string str8 = writesV; writesV = str8 + t + "\t" + descriptor.FieldName + ":sint64" + ((descriptor.PreDefine == DataStruct.FieldDescriptor.PreDefineType.repeated) ? "*" : "") + ((descriptor.DefaultValue == "") ? "" : (" = " + descriptor.DefaultValue)) + "\t;" + descriptor.CNName + "\r\n"; } else if (descriptor.FieldType == "uint64") { bw.Write(false); string str8 = writesV; writesV = str8 + t + "\t" + descriptor.FieldName + ":uint64" + ((descriptor.PreDefine == DataStruct.FieldDescriptor.PreDefineType.repeated) ? "*" : "") + ((descriptor.DefaultValue == "") ? "" : (" = " + descriptor.DefaultValue)) + "\t;" + descriptor.CNName + "\r\n"; } else { bw.Write(true); string str9 = writesV; writesV = str9 + t + "\t" + descriptor.FieldName + ":" + descriptor.FieldType + ((descriptor.PreDefine == DataStruct.FieldDescriptor.PreDefineType.repeated) ? "*" : "") + "\t;" + descriptor.CNName + "\r\n"; string str2 = t + "\t"; save.Next = new Save(); Save next = save.Next; LookFor(m, descriptor.FieldType, "", str2, ref writesV, ref next, mytype); } } } }
public static void Deserialize(TreeView tree, string dir) { DirectoryInfo info = new DirectoryInfo(dir + "/XML"); if (info.Exists) { foreach (FileInfo info2 in info.GetFiles()) { if (((info2.Extension == ".xml") && (info2.Name != "Module.xml")) && (info2.Name != "ProtocolConfig.xml")) { XmlDocument document = new XmlDocument(); document.Load(info2.FullName); TreeNode node = tree.Nodes[0]; TreeNode node2 = tree.Nodes[1]; if (info2.Name == "PublicStruct.xml") { foreach (XmlNode node3 in document.SelectSingleNode("Root").ChildNodes) { DataStruct struct2 = new DataStruct(); XmlElement element = (XmlElement)node3; struct2.StructName = element.GetAttribute("Name"); struct2.CNName = element.GetAttribute("CName"); struct2.ProtoType = struct2.getProtoTypeValue(element.GetAttribute("ProtoType")); struct2.Comment = element.GetAttribute("Comment"); struct2.MaxFieldId = Convert.ToInt32(element.GetAttribute("MaxFieldId")); TreeNode node4 = node.Nodes.Add(struct2.StructName); node4.Name = "NewDataStruct"; node4.ImageIndex = 2; node4.Tag = struct2; foreach (XmlNode node5 in node3) { XmlElement element2 = (XmlElement)node5; DataStruct.FieldDescriptor descriptor = new DataStruct.FieldDescriptor { dataStruct = struct2 }; struct2.fieldItem.Add(descriptor); descriptor.FieldName = element2.GetAttribute("Name"); descriptor.CNName = element2.GetAttribute("CName"); descriptor.FieldType = element2.GetAttribute("FieldType"); descriptor.Comment = element2.GetAttribute("Comment"); descriptor.FieldId = Convert.ToInt32(element2.GetAttribute("FieldId")); descriptor.ValueSet = element2.GetAttribute("ValueSet"); descriptor.MaxValue = Convert.ToInt32(element2.GetAttribute("MaxValue")); descriptor.MinValue = Convert.ToInt32(element2.GetAttribute("MinValue")); string attribute = element2.GetAttribute("PreDefine"); descriptor.PreDefine = (attribute == "optional") ? DataStruct.FieldDescriptor.PreDefineType.optional : DataStruct.FieldDescriptor.PreDefineType.repeated; if (DataStruct.IsBaseType(descriptor.FieldType)) { descriptor.DefaultValue = element2.GetAttribute("DefaultValue"); } TreeNode node6 = node4.Nodes.Add(descriptor.FieldName); node6.Name = "NewField"; node6.ImageIndex = 3; node6.Tag = descriptor; } DataStructConverter.CommDataStruct.Add(struct2); DataStruct.DataStructDic.Add(struct2.getFullName(), struct2); } } else { Module module = new Module(); XmlElement element3 = (XmlElement)document.SelectSingleNode("Root"); module.ModuleName = element3.GetAttribute("Module"); module.CNName = element3.GetAttribute("CName"); module.Comment = element3.GetAttribute("Comment"); module.StartIdNum = Convert.ToInt32(element3.GetAttribute("MsgNumStart")); module.SyncDataVersion = Convert.ToInt32(element3.GetAttribute("SyncDataVersion")); Module.ModuleDic.Add(module.ModuleName, module); TreeNode node7 = node2.Nodes.Add(module.ModuleName); int startIdNum = module.StartIdNum; if (startIdNum == 0) { startIdNum = new Random().Next(0x3e8, 0x270f); } ArrayList list2 = new ArrayList(); Module.errorDic.Add(startIdNum, list2); Module.ErrorModuleName name = new Module.ErrorModuleName { en = module.ModuleName, cn = module.CNName }; Module.moduleNameDic.Add(startIdNum, name); node7.Name = "NewModule"; node7.ImageIndex = 4; node7.Tag = module; TreeNode node8 = node7.Nodes.Add("Client RPC"); node8.Name = "clientRpc"; TreeNode node9 = node7.Nodes.Add("RPC Parameters"); node9.Name = "rpcProto"; TreeNode node10 = node7.Nodes.Add("Module Data"); node10.Name = "syncData"; TreeNode node11 = node7.Nodes.Add("Configuration Files"); node11.Name = "configFile"; module.rpcProtoNode = node9; foreach (XmlNode node12 in document.SelectSingleNode("Root").ChildNodes) { if (node12.Name == "Operate") { XmlElement element4 = (XmlElement)node12; Module.OperaterItem item = new Module.OperaterItem { module = module }; module.operateItem.Add(item); item.Name = element4.GetAttribute("Name"); item.CNName = element4.GetAttribute("CName"); item.Comment = element4.GetAttribute("Comment"); TreeNode node13 = node8.Nodes.Add(item.Name); node13.Name = "NewOperate"; node13.ImageIndex = 5; node13.Tag = item; foreach (XmlNode node14 in node12) { XmlElement element5 = (XmlElement)node14; Module.OperaterItem.SubOperaterItem item2 = new Module.OperaterItem.SubOperaterItem(); item.subOperateItem.Add(item2); item2.operaterItem = item; item2.Type = item2.getOperateType(element5.Name); item2.toSetOpType(element5.Name); item2.toSetName(element5.GetAttribute("Name")); item2.toSetCnName(element5.GetAttribute("CName")); item2.Comment = element5.GetAttribute("Comment"); item2.toSetDataStructName(element5.GetAttribute("DataStruct")); TreeNode node15 = node13.Nodes.Add(element5.GetAttribute("Name")); node15.Name = "NewSubOperate"; node15.ImageIndex = 6; node15.Tag = item2; } } else if (node12.Name == "Struct") { TreeNode node16; XmlElement element6 = (XmlElement)node12; DataStruct struct3 = new DataStruct { module = module }; module.moduleDataStruct.Add(struct3); struct3.StructName = element6.GetAttribute("Name"); struct3.CNName = element6.GetAttribute("CName"); struct3.Comment = element6.GetAttribute("Comment"); struct3.MaxFieldId = Convert.ToInt32(element6.GetAttribute("MaxFieldId")); struct3.ProtoType = struct3.getProtoTypeValue(element6.GetAttribute("ProtoType")); struct3.ToSetDataType(struct3.ConvertDataType(element6.GetAttribute("DataType"))); struct3.saveToDB = element6.GetAttribute("SaveToDB").ToLower() == "true"; struct3.SyncToClient = element6.GetAttribute("SyncToClient").ToLower() == "true"; if (struct3.ProtoType == DataStruct.protoTypeE.RpcProto) { node16 = node9.Nodes.Add(struct3.StructName); } else { node16 = node10.Nodes.Add(struct3.StructName); } node16.Name = "NewDataStruct"; node16.ImageIndex = 2; node16.Tag = struct3; struct3.selfTreeNode = node16; foreach (XmlNode node17 in node12) { XmlElement element7 = (XmlElement)node17; DataStruct.FieldDescriptor descriptor2 = new DataStruct.FieldDescriptor { dataStruct = struct3 }; struct3.fieldItem.Add(descriptor2); descriptor2.FieldName = element7.GetAttribute("Name"); descriptor2.CNName = element7.GetAttribute("CName"); descriptor2.Comment = element7.GetAttribute("Comment"); descriptor2.FieldType = element7.GetAttribute("FieldType"); descriptor2.FieldId = Convert.ToInt32(element7.GetAttribute("FieldId")); string str2 = element7.GetAttribute("PreDefine"); descriptor2.PreDefine = (str2 == "optional") ? DataStruct.FieldDescriptor.PreDefineType.optional : DataStruct.FieldDescriptor.PreDefineType.repeated; descriptor2.ValueSet = element7.GetAttribute("ValueSet"); descriptor2.MaxValue = Convert.ToInt32(element7.GetAttribute("MaxValue")); descriptor2.MinValue = Convert.ToInt32(element7.GetAttribute("MinValue")); if (DataStruct.IsBaseType(descriptor2.FieldType)) { descriptor2.DefaultValue = element7.GetAttribute("DefaultValue"); } TreeNode node18 = node16.Nodes.Add(descriptor2.FieldName); node18.Name = "NewField"; node18.ImageIndex = 3; node18.Tag = descriptor2; } DataStruct.DataStructDic.Add(struct3.getFullName(), struct3); } else if (node12.Name == "ConfigFile") { XmlElement element8 = (XmlElement)node12; ConfigFile file = new ConfigFile { module = module }; module.configFiles.Add(file); file.toSetConfigName(element8.GetAttribute("Name")); file.CNName = element8.GetAttribute("CName"); file.Comment = element8.GetAttribute("Comment"); TreeNode node19 = node11.Nodes.Add(file.ConfigName); node19.Name = "NewConfigFile"; node19.ImageIndex = 2; node19.Tag = file; foreach (XmlNode node20 in node12) { XmlElement element9 = (XmlElement)node20; ConfigFile.ConfigField field = new ConfigFile.ConfigField { configFile = file }; file.fieldItem.Add(field); field.toSetFieldName(element9.GetAttribute("Name")); field.toSetCnName(element9.GetAttribute("CName")); field.toSetComment(element9.GetAttribute("Comment")); field.toSetFieldType(element9.GetAttribute("FieldType")); field.toSetDefaultValue(element9.GetAttribute("DefaultValue")); field.toSetCheckIndex(element9.GetAttribute("CheckIndex")); field.toSetValueSet(element9.GetAttribute("ValueSet")); field.toSetIsPri(element9.GetAttribute("IsPri").ToLower() == "true"); field.toSetIsSvr(element9.GetAttribute("IsSvr").ToLower() == "true"); field.toSetIsDes(element9.GetAttribute("IsDes").ToLower() == "true"); field.toSetMaxValue(Convert.ToInt32(element9.GetAttribute("MaxValue"))); field.toSetMinValue(Convert.ToInt32(element9.GetAttribute("MinValue"))); TreeNode node21 = node19.Nodes.Add(field.FieldName); node21.Name = "NewConfigField"; node21.ImageIndex = 3; node21.Tag = field; } ConfigFile.ConfigFileDic[file.ConfigName] = file; } } } } } } }