public void SaveRule() { var dal = new DAL(); var bonds = dal.GetList(); if (bonds.Count == 0) { const string message = @"You do not have any bonds to Save, thus I am unable " + @" to save any bonds. Please add some bonds before Saving"; MessageBox.Show(message); return; } var dlg = new SaveFileDialog { FileName = "Prize Bond Manager", DefaultExt = ".pbm", Filter = @"Prize Bond Manager Files (.pbm)|*.pbm" }; // Show save file dialog box var result = dlg.ShowDialog(); // Process save file dialog box results if (result == DialogResult.OK) { // Save document string filename = dlg.FileName; var serializer = new Serializer(); var objectToSerialize = new ObjectToSerialize { Bonds = bonds }; serializer.SerializeObject(filename, objectToSerialize); } }
public void SyncState(Serializer ser) { ser.BeginSection("HuC6280"); ser.Sync("A", ref A); ser.Sync("X", ref X); ser.Sync("Y", ref Y); ser.Sync("P", ref P); ser.Sync("PC", ref PC); ser.Sync("S", ref S); ser.Sync("MPR", ref MPR, false); ser.Sync("LagIFlag", ref LagIFlag); ser.Sync("IRQ1Assert", ref IRQ1Assert); ser.Sync("IRQ2Assert", ref IRQ2Assert); ser.Sync("TimerAssert", ref TimerAssert); ser.Sync("IRQControlByte", ref IRQControlByte); ser.Sync("IRQNextControlByte", ref IRQNextControlByte); ser.Sync("ExecutedCycles", ref TotalExecutedCycles); ser.Sync("PendingCycles", ref PendingCycles); ser.Sync("LowSpeed", ref LowSpeed); ser.Sync("TimerTickCounter", ref TimerTickCounter); ser.Sync("TimerReloadValue", ref TimerReloadValue); ser.Sync("TimerValue", ref TimerValue); ser.Sync("TimerEnabled", ref TimerEnabled); ser.Sync("InBlockTransfer", ref InBlockTransfer); ser.Sync("BTFrom", ref btFrom); ser.Sync("BTTo", ref btTo); ser.Sync("BTLen", ref btLen); ser.Sync("BTAlternator", ref btAlternator); ser.EndSection(); }
public override void SyncState(Serializer ser) { ser.Sync("prg_reg", ref prg_reg); ser.Sync("chr_reg", ref chr_reg); ser.Sync("prg_mode", ref prg_mode); base.SyncState(ser); }
/// <summary> /// Initializes a new instance of the <see cref="GameSystem" /> class. /// </summary> /// <param name="game">The game.</param> public YamlManager(Game game) : base(game) { Services.AddService(this); yamlSettings = new SerializerSettings(); attributeRegistry = yamlSettings.Attributes; serializer = new Serializer(yamlSettings); }
public override ValueSerializer BuildSerializer(Serializer serializer, Type type, ConcurrentDictionary<Type, ValueSerializer> typeMapping) { var x = new ObjectSerializer(type); typeMapping.TryAdd(type, x); var elementType = GetEnumerableType(type); var arrType = elementType.MakeArrayType(); var listModule = type.Assembly.GetType("Microsoft.FSharp.Collections.ListModule"); var ofArray = listModule.GetMethod("OfArray"); var ofArrayConcrete = ofArray.MakeGenericMethod(elementType); var ofArrayCompiled = CodeGenerator.CompileToDelegate(ofArrayConcrete, arrType); var toArray = listModule.GetMethod("ToArray"); var toArrayConcrete = toArray.MakeGenericMethod(elementType); var toArrayCompiled = CodeGenerator.CompileToDelegate(toArrayConcrete, type); ValueWriter writer = (stream, o, session) => { var arr = toArrayCompiled(o); var arrSerializer = serializer.GetSerializerByType(arrType); arrSerializer.WriteValue(stream,arr,session); }; ValueReader reader = (stream, session) => { var arrSerializer = serializer.GetSerializerByType(arrType); var items = (Array)arrSerializer.ReadValue(stream, session); var res = ofArrayCompiled(items); return res; }; x.Initialize(reader, writer); return x; }
private void Config_FormClosing(object sender, FormClosingEventArgs e) { //TODO: Validar se arquivo .mfc é válido if (_contadorErro <= 3 && !System.IO.File.Exists(txtPasta.Text)) { MessageBox.Show("Por favor, selecione um arquivo válido de configurações do Mock MF.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cancel = true; _contadorErro++; return; } if (_contadorErro > 3) { e.Cancel = false; Application.Exit(); return; } FileInfo fInfo = new FileInfo(txtPasta.Text); Configuracoes.CaminhoArquivo = fInfo.DirectoryName; Configuracoes.TelaInicial = Path.GetFileNameWithoutExtension(txtPasta.Text); var baseMFSerializer =new Serializer<BaseMF>(); if (checkSalvar.Checked) File.WriteAllText(String.Format("{0}\\{1}.xml", Application.LocalUserAppDataPath, Configuracoes.Nome), baseMFSerializer.XmlSerialize(Configuracoes)); }
public override void Serialize(Serializer serializer) { base.Serialize(serializer); serializer.Serialize(ref delta, "delta"); serializer.Serialize(ref itemDefinition, "itemDefinition"); }
public void Deserialize(System.IO.TextReader rdr, Serializer serializer) { string name, value, rigthPart; var parameters = new System.Collections.Specialized.NameValueCollection(); while (rdr.Property(out name, out value, out rigthPart, parameters) && !string.IsNullOrEmpty(name)) { switch (name.ToUpper()) { case "CLASS": Class = value.ToEnum<Classes>(); break; case "STATUS": Status = value.ToEnum<Statuses>(); break; case "UID": UID = value; break; case "ORGANIZER": Organizer = new Contact(); Organizer.Deserialize(value, parameters); break; case "CATEGORIES": Categories = value.SplitEscaped().ToList(); break; case "DESCRIPTION": Description = value; break; case "SEQUENCE": Sequence = value.ToInt(); break; case "LAST-MODIFIED": LastModified = value.ToDateTime(); break; case "DTSTAMP": DTSTAMP = value.ToDateTime(); break; case "END": return; default: Properties.Add(Tuple.Create(name, value, parameters)); break; } } }
public override void SyncState(Serializer ser) { base.SyncState(ser); ser.Sync("toggle1", ref _toggle1); ser.Sync("toggle2", ref _toggle2); ser.Sync("toggle3", ref _toggle3); }
public override void SyncState(Serializer ser) { base.SyncState(ser); ser.Sync("chr_regs_1k", ref chr_regs_1k); ser.Sync("prg_regs_8k", ref prg_regs_8k); ser.Sync("wramenable", ref wramenable); }
public override void SyncState(Serializer ser) { base.SyncState(ser); ser.Sync("block", ref block); ser.Sync("prg", ref prg); ser.Sync("mode", ref mode); }
public override void SyncState(Serializer ser) { base.SyncState(ser); ser.Sync("prg_bank_mask_16k", ref prg_bank_mask_16k); ser.Sync("prg_bank_16k", ref prg_bank_16k); ser.Sync("prg_banks_16k", ref prg_banks_16k); }
public override void SyncState(Serializer ser) { base.SyncState(ser); ser.BeginSection("FDS"); ser.BeginSection("RamAdapter"); diskdrive.SyncState(ser); ser.EndSection(); ser.BeginSection("audio"); audio.SyncState(ser); ser.EndSection(); { // silly little hack int tmp = currentside != null ? (int)currentside : 1234567; ser.Sync("currentside", ref tmp); currentside = tmp == 1234567 ? null : (int?)tmp; } for (int i = 0; i < NumSides; i++) ser.Sync("diskdiffs" + i, ref diskdiffs[i], true); ser.Sync("_timerirq", ref _timerirq); ser.Sync("_diskirq", ref _diskirq); ser.Sync("diskenable", ref diskenable); ser.Sync("soundenable", ref soundenable); ser.Sync("reg4026", ref reg4026); ser.Sync("timerlatch", ref timerlatch); ser.Sync("timervalue", ref timervalue); ser.Sync("timerreg", ref timerreg); ser.EndSection(); SetIRQ(); }
public override void Serialize(Serializer serializer) { base.Serialize(serializer); serializer.Serialize(ref delta, "delta"); serializer.Serialize(ref tileType, "tileType"); }
public override void SyncState(Serializer ser) { ser.Sync("bank_4k", ref _bank4K); ser.Sync("gameTotal", ref _gameTotal); ser.Sync("currentGame", ref _currentGame); base.SyncState(ser); }
public void Deserialize(System.IO.TextReader rdr, Serializer serializer) { string name, value; var parameters = new System.Collections.Specialized.NameValueCollection(); while (rdr.Property(out name, out value, parameters) && !string.IsNullOrEmpty(name)) { switch (name.ToUpper()) { case "UID": UID = value; break; case "ORGANIZER": Organizer = new Contact(); Organizer.Deserialize(value, parameters); break; case "SEQUENCE": Sequence = value.ToInt(); break; case "LAST-MODIFIED": LastModified = value.ToDateTime(); break; case "DTSTART": LastModified = value.ToDateTime(); break; case "DTEND": LastModified = value.ToDateTime(); break; case "DTSTAMP": DTSTAMP = value.ToDateTime(); break; case "FREEBUSY": var parts = value.Split('/'); Details.Add(new DateTimeRange { From = parts.FirstOrDefault().ToDateTime(), To = parts.ElementAtOrDefault(1).ToDateTime() }); break; case "END": return; default: Properties.Add(Tuple.Create(name, value, parameters)); break; } } }
public override void Serialize(Serializer serializer) { base.Serialize(serializer); serializer.Serialize(ref delta, "delta"); serializer.Serialize(ref damage, "damage"); }
internal static void PlainCopy(Serializer context, ISerializableObject from, ISerializableObject to, FieldLock fieldLock, bool forceForeignKeyCopy) { AttributeWorker w = AttributeWorker.GetInstance(context.Target); FieldInfo[] fis = AttributeWorker.RetrieveAllFields(from.GetType()); foreach (FieldInfo fi in fis) { if (fieldLock.IsLocked(fi)) continue; if (AttributeWorker.IsRelationField(fi)) continue; if (w.IsAutoincID(fi)) continue; if (!w.IsPersistentField(fi)) continue; if (AttributeWorker.IsRowGuid(fi)) continue; if (w.IsForeignKey(context, fi) && !forceForeignKeyCopy) { DirectSyncAttribute a = (DirectSyncAttribute)Attribute.GetCustomAttribute(fi, typeof(DirectSyncAttribute)); if (a == null) continue; } Object val = fi.GetValue(from); fi.SetValue(to, val); } }
public void Setup() { _serializer = new Serializer(); _stream = new MemoryStream(); _testStruct = LargeStruct.Create(); _testPerson = TypicalPersonData.MakeRandom(); }
public override void Serialize(Serializer serializer) { base.Serialize(serializer); serializer.Serialize(ref delta, "delta"); serializer.Serialize(ref effectId, "effectId"); }
public Util(Core RennderCore) { R = RennderCore; Str = new Str(R); Xml = new Xml(); Serializer = new Serializer(R); }
public override void SyncState(Serializer ser) { base.SyncState(ser); ser.Sync("prg", ref prg, false); ser.Sync("chr", ref chr, false); ser.Sync("wramenable", ref wramenable); }
public override void SyncState(Serializer ser) { base.SyncState(ser); ser.Sync("reg_addr", ref reg_addr); ser.Sync("regs", ref regs); Sync(); }
public void GenXML() { String sourceUri = Server.MapPath("5648.xml"); String xqUri = Server.MapPath("graph.xq"); using (FileStream sXml = File.OpenRead(sourceUri)) { using (FileStream sXq = File.OpenRead(xqUri)) { Processor processor = new Processor(); XQueryCompiler compiler = processor.NewXQueryCompiler(); compiler.BaseUri = sourceUri; XQueryExecutable exp = compiler.Compile(sXq); XQueryEvaluator eval = exp.Load(); DocumentBuilder loader = processor.NewDocumentBuilder(); loader.BaseUri = new Uri(sourceUri); XdmNode indoc = loader.Build(new FileStream(sourceUri, FileMode.Open, FileAccess.Read)); eval.ContextItem = indoc; Serializer qout = new Serializer(); qout.SetOutputProperty(Serializer.METHOD, "xml"); qout.SetOutputProperty(Serializer.INDENT, "yes"); qout.SetOutputProperty(Serializer.SAXON_INDENT_SPACES, "1"); qout.SetOutputWriter(Response.Output); eval.Run(qout); } } }
public void Deserialize(System.IO.TextReader rdr, Serializer serializer) { string name, value; var parameters = new System.Collections.Specialized.NameValueCollection(); while (rdr.Property(out name, out value, parameters) && !string.IsNullOrEmpty(name)) { switch (name.ToUpper()) { case "BEGIN": switch (value) { case "VALARM": var a = serializer.GetService<Alarm>(); a.Deserialize(rdr, serializer); Alarms.Add(a); break; } break; case "ATTENDEE": var contact = new Contact(); contact.Deserialize(value, parameters); Attendees.Add(contact); break; case "CATEGORIES": Categories = value.SplitEscaped().ToList(); break; case "CLASS": Class = value.ToEnum<Classes>(); break; case "CREATED": Created = value.ToDateTime(); break; case "DESCRIPTION": Description = value; break; case "DTEND": End = value.ToDateTime(); break; case "DTSTAMP": DTSTAMP = value.ToDateTime().GetValueOrDefault(); break; case "DTSTART": Start = value.ToDateTime(); break; case "LAST-MODIFIED": LastModified = value.ToDateTime(); break; case "LOCATION": Location = value; break; case "ORGANIZER": Organizer = serializer.GetService<Contact>(); Organizer.Deserialize(value, parameters); break; case "PRIORITY": Priority = value.ToInt(); break; case "SEQUENCE": Sequence = value.ToInt(); break; case "STATUS": Status = value.ToEnum<Statuses>(); break; case "SUMMARY": Summary = value; break; case "TRANSP": Transparency = value; break; case "UID": UID = value; break; case "URL": Url = value.ToUri(); break; case "ATTACH": var attach = value.ToUri(); if (attach != null) Attachments.Add(attach); break; case "RRULE": var rule = serializer.GetService<Recurrence>(); rule.Deserialize(null, parameters); Recurrences.Add(rule); break; case "END": return; default: Properties.Add(Tuple.Create(name, value, parameters)); break; } } IsAllDay = Start == End; }
public override void SyncState(Serializer ser) { base.SyncState(ser); ser.Sync("irq_target", ref irq_target); ser.Sync("irq_counter", ref irq_counter); ser.Sync("irq_enabled", ref irq_enabled); ser.Sync("irq_pending", ref irq_pending); ser.Sync("in_frame", ref in_frame); ser.Sync("exram_mode", ref exram_mode); ser.Sync("chr_mode", ref chr_mode); ser.Sync("prg_mode", ref prg_mode); ser.Sync("chr_reg_high", ref chr_reg_high); ser.Sync("ab_mode", ref ab_mode); ser.Sync("regs_a", ref regs_a); ser.Sync("regs_b", ref regs_b); ser.Sync("regs_prg", ref regs_prg); ser.Sync("nt_modes", ref nt_modes); ser.Sync("nt_fill_tile", ref nt_fill_tile); ser.Sync("nt_fill_attrib", ref nt_fill_attrib); ser.Sync("wram_bank", ref wram_bank); ser.Sync("last_nt_read", ref last_nt_read); ser.Sync("EXRAM", ref EXRAM, false); SyncPRGBanks(); SyncCHRBanks(); SyncMultiplier(); SyncIRQ(); audio.SyncState(ser); }
public virtual void LoadXML(string filename) { Serializer<List<StringMap>> serializer = new Serializer<List<StringMap>>(); List<StringMap> tmp = serializer.Load(filename); if (tmp != null) stringmap = tmp; }
public override void Serialize(Serializer serializer) { base.Serialize(serializer); serializer.Serialize(ref delta, "delta"); serializer.Serialize(ref soundId, "soundId"); }
public override void SyncState(Serializer ser) { base.SyncState(ser); ser.Sync("prg_mode_mapper", ref prg_mode_mapper); ser.Sync("prg_page", ref prg_page); ser.Sync("chr_block_or", ref chr_block_or); }
protected virtual Serializer Deserialize(Serializer serializer) { Bones.Clear(); PrimaryBoneID = ""; List<XElement> subObjects = (from el in serializer.SerializedData.Elements("dataitem").Elements("object") select el).ToList(); for (int i = 0; i < subObjects.Count; i++) { if ((Type.GetType((string)subObjects[i].Attribute("type")) != null) && (Type.GetType((string)subObjects[i].Attribute("type")).GetInterfaces().Contains(typeof(IBone)))) { ReinstateBone(subObjects[i]); } } WorldPosition = serializer.GetDataItem<Vector2>("world-position"); Rotation = serializer.GetDataItem<float>("rotation"); Scale = serializer.GetDataItem<float>("scale"); Mirror = serializer.GetDataItem<bool>("mirror"); Tint = serializer.GetDataItem<Color>("tint"); RenderDepth = serializer.GetDataItem<float>("render-depth"); RenderLayer = serializer.GetDataItem<int>("render-layer"); Visible = serializer.GetDataItem<bool>("visible"); return serializer; }
/// <summary> /// 解析WebApi的请求。 /// </summary> /// <param name="context">http上下文</param> private void ResolveWebApiEx(HttpContext context) { HttpRequest request = context.Request; var nameSpace = "Orm.Framework.Common"; //接口所在命名空间 var className = "WebAPI"; //接口类名 var methodName = request.QueryString["action"]; //.Form["action"] //methodName = "UpdateFollowInfo"; Assembly assembly = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory + @"bin\" + nameSpace + ".dll"); // 动态调用方法。 object eval = assembly.CreateInstance(nameSpace + "." + className); MethodInfo method = eval.GetType().GetMethod(methodName); MethodDC theContract = new MethodDC(); ApiResultDC theResult = new ApiResultDC(); try { theContract.MethodName = methodName; #region 参数设置 //获取反射方法的参数和参数的类型 Dictionary <string, Type> dicParam = new Dictionary <string, Type>(); ParameterInfo[] paramters = method.GetParameters(); foreach (ParameterInfo item in paramters) { dicParam.Add(item.Name, item.ParameterType); } //参数赋值 List <ParameterDC> paramList = new List <ParameterDC>(); foreach (var item in request.Form.AllKeys) { string paramValue = request.Form[item].ToString(); if (dicParam[item].Name == "String") { paramValue = "\"" + paramValue + "\""; } paramList.Add(new ParameterDC { JsonValue = paramValue, TypeQualifiedName = dicParam[item].FullName }); } //if (paramList.Count > 0) theContract.ParameterList = paramList; //else //{ // var p = new ParameterDC { JsonValue = "344", TypeQualifiedName = typeof(int).FullName }; // var p2 = new ParameterDC { JsonValue = "5", TypeQualifiedName = typeof(int).FullName }; // var p1 = new ParameterDC { JsonValue = "\"更新\"", TypeQualifiedName = typeof(string).FullName }; // var plist = new List<ParameterDC>(); // plist.Add(p); // plist.Add(p2); // plist.Add(p1); // theContract.ParameterList = plist; //} if (paramters.Count() != theContract.ParameterList.Count) { ReturnValue returnValue = new ReturnValue(); returnValue.ErrorCode = -1; returnValue.ErrorMsg = "参数个数不匹配"; var jsonResult = Serializer.Serialize(returnValue); context.Response.Write(jsonResult); return; } #endregion ApiCore apiCpre = new ApiCore(theContract); var result = apiCpre.Invoke(eval); if (result.ResultType.Name.ToLower() != "void") { theResult.JsonValue = Serializer.Serialize(result.ResultValue); theResult.TypeQualifiedName = result.ResultType.AssemblyQualifiedName; context.Response.Write(theResult.JsonValue); //context.Response = theResult.JsonValue; } else { theResult.JsonValue = string.Empty; theResult.TypeQualifiedName = result.ResultType.AssemblyQualifiedName; ReturnValue returnValue = new ReturnValue(); returnValue.ErrorCode = -1; returnValue.ErrorMsg = "此接口方法没有返回值"; var jsonResult = Serializer.Serialize(returnValue); context.Response.Write(jsonResult); return; } } catch (Exception ex) { ReturnValue returnValue = new ReturnValue(); returnValue.ErrorCode = -1; returnValue.ErrorMsg = "接口调用异常:" + ex.Message; var jsonResult = Serializer.Serialize(returnValue); context.Response.Write(jsonResult); } }
/// <sumary> /// Instantiate the new Chart and load the editor scene /// </sumary> public void StartEditor(bool isEdit = false) { if (Serializer.Initialized) { if (Serializer.ChartData == null) { Chart chart = new Chart(); Beats defaultBeats = new Beats(); defaultBeats.Easy = new Dictionary <float, List <Note> >(); defaultBeats.Normal = new Dictionary <float, List <Note> >(); defaultBeats.Hard = new Dictionary <float, List <Note> >(); defaultBeats.Expert = new Dictionary <float, List <Note> >(); defaultBeats.Master = new Dictionary <float, List <Note> >(); defaultBeats.Custom = new Dictionary <float, List <Note> >(); Effects defaultEffects = new Effects(); defaultEffects.Easy = new List <float>(); defaultEffects.Normal = new List <float>(); defaultEffects.Hard = new List <float>(); defaultEffects.Expert = new List <float>(); defaultEffects.Master = new List <float>(); defaultEffects.Custom = new List <float>(); Jumps defaultJumps = new Jumps(); defaultJumps.Easy = new List <float>(); defaultJumps.Normal = new List <float>(); defaultJumps.Hard = new List <float>(); defaultJumps.Expert = new List <float>(); defaultJumps.Master = new List <float>(); defaultJumps.Custom = new List <float>(); Crouchs defaultCrouchs = new Crouchs(); defaultCrouchs.Easy = new List <float>(); defaultCrouchs.Normal = new List <float>(); defaultCrouchs.Hard = new List <float>(); defaultCrouchs.Expert = new List <float>(); defaultCrouchs.Master = new List <float>(); defaultCrouchs.Custom = new List <float>(); Slides defaultSlides = new Slides(); defaultSlides.Easy = new List <Slide>(); defaultSlides.Normal = new List <Slide>(); defaultSlides.Hard = new List <Slide>(); defaultSlides.Expert = new List <Slide>(); defaultSlides.Master = new List <Slide>(); defaultSlides.Custom = new List <Slide>(); Lights defaultLights = new Lights(); defaultLights.Easy = new List <float>(); defaultLights.Normal = new List <float>(); defaultLights.Hard = new List <float>(); defaultLights.Expert = new List <float>(); defaultLights.Master = new List <float>(); defaultLights.Custom = new List <float>(); /// For testing /*var list = new List<Note>(); * list.Add(new Note(new Vector3(-0.5756355f, 0.2400601f, 0), 1)); * defaultBeats.Easy.Add(0, list); * list = new List<Note>(); * list.Add(new Note(new Vector3(-0.7826607f, 0.3006552f, 20f), 2002)); * defaultBeats.Easy.Add(2000, list); * list = new List<Note>(); * list.Add(new Note(new Vector3(0.1514833f, 0.3359979f, 40f), 4001)); * defaultBeats.Easy.Add(4000, list); */ chart.Track = defaultBeats; chart.Effects = defaultEffects; chart.Jumps = defaultJumps; chart.Crouchs = defaultCrouchs; chart.Slides = defaultSlides; chart.Bookmarks = new Bookmarks(); chart.Name = nameField.text; chart.Author = authorField.text; chart.AudioName = trackField.text; chart.AudioData = null; //audioData; chart.AudioFrecuency = loadedClip.frequency; chart.AudioChannels = loadedClip.channels; chart.BPM = 120; chart.FilePath = null; chart.Artwork = artWorkField; chart.ArtworkBytes = loadedArtwork; chart.IsAdminOnly = Serializer.IsAdmin(); chart.Beatmapper = mapperField.text; chart.CustomDifficultyName = "Custom"; chart.CustomDifficultySpeed = 1; chart.Tags = new List <string>(); chart.Lights = defaultLights; Serializer.ChartData = chart; } if (artworkEdited) { Serializer.ChartData.Artwork = artWorkField; Serializer.ChartData.ArtworkBytes = loadedArtwork; } if (audioEdited) { // Serializer.ChartData.AudioData = audioData; Serializer.ChartData.AudioFrecuency = loadedClip.frequency; Serializer.ChartData.AudioChannels = loadedClip.channels; } if (isEdit) { Serializer.ChartData.Name = editNameField.text; Serializer.ChartData.Author = editAuthorField.text; Serializer.ChartData.AudioName = editTrackField.text; Serializer.ChartData.Beatmapper = editMapperField.text; } // Complete editor process // Serializer.SerializeToFile(); Miku_LoaderHelper.LauchPreloader(); } }
private void LoadAudioChart(string absoluteUri, bool isJSON = false) { if (Serializer.Initialized) { // bool fileLoadSuccess = Serializer.LoadFronFile(absoluteUri, isJSON, absoluteUri.Contains(".dat")); bool fileLoadSuccess = isJSON ? Serializer.LoadFronFile(absoluteUri, isJSON, absoluteUri.Contains(".dat")) : Serializer.LoadFronFile(absoluteUri); if (fileLoadSuccess) { editPanelAnimator.Play("Panel In"); editModePanelAnimator.Play("Panel Out"); editNameField.text = Serializer.ChartData.Name; editAuthorField.text = Serializer.ChartData.Author; editTrackField.text = (Serializer.ChartData.AudioData != null) ? string.Empty : Serializer.ChartData.AudioName; editMapperField.text = Serializer.ChartData.Beatmapper; if (!isJSON) { Serializer.ChartData.FilePath = absoluteUri; } // For the artwork texture if (Serializer.ChartData.ArtworkBytes == null) { Serializer.ChartData.Artwork = "Default Artwork"; Serializer.ChartData.ArtworkBytes = defaultArtworkData; } SetSpriteToImage(editArtworkField, Serializer.ChartData.ArtworkBytes); // If not has effect data if (Serializer.ChartData.Effects == null) { Effects defaultEffects = new Effects(); defaultEffects.Easy = new List <float>(); defaultEffects.Normal = new List <float>(); defaultEffects.Hard = new List <float>(); defaultEffects.Expert = new List <float>(); defaultEffects.Master = new List <float>(); defaultEffects.Custom = new List <float>(); Serializer.ChartData.Effects = defaultEffects; } if (Serializer.ChartData.Jumps == null) { Jumps defaultJumps = new Jumps(); defaultJumps.Easy = new List <float>(); defaultJumps.Normal = new List <float>(); defaultJumps.Hard = new List <float>(); defaultJumps.Expert = new List <float>(); defaultJumps.Master = new List <float>(); defaultJumps.Custom = new List <float>(); Serializer.ChartData.Jumps = defaultJumps; } if (Serializer.ChartData.Crouchs == null) { Crouchs defaultCrouchs = new Crouchs(); defaultCrouchs.Easy = new List <float>(); defaultCrouchs.Normal = new List <float>(); defaultCrouchs.Hard = new List <float>(); defaultCrouchs.Expert = new List <float>(); defaultCrouchs.Master = new List <float>(); defaultCrouchs.Custom = new List <float>(); Serializer.ChartData.Crouchs = defaultCrouchs; } if (Serializer.ChartData.Slides == null) { Slides defaultSlides = new Slides(); defaultSlides.Easy = new List <Slide>(); defaultSlides.Normal = new List <Slide>(); defaultSlides.Hard = new List <Slide>(); defaultSlides.Expert = new List <Slide>(); defaultSlides.Master = new List <Slide>(); defaultSlides.Custom = new List <Slide>(); Serializer.ChartData.Slides = defaultSlides; } if (Serializer.ChartData.Lights == null) { Lights defaultLights = new Lights(); defaultLights.Easy = new List <float>(); defaultLights.Normal = new List <float>(); defaultLights.Hard = new List <float>(); defaultLights.Expert = new List <float>(); defaultLights.Master = new List <float>(); defaultLights.Custom = new List <float>(); Serializer.ChartData.Lights = defaultLights; } if (Serializer.ChartData.Bookmarks == null) { Serializer.ChartData.Bookmarks = new Bookmarks(); } InitFormsSelection(true); } } }
public void Serialize<T>(Stream dest, T value) { Serializer.Serialize<T>(dest, value); }
public void go(string[] args) { // AutoActivate.activate(driverProc); driverSerializer = driverProc.NewSerializer(); //testSuiteDir = args[0]; Trace.Listeners.Add(new TextWriterTraceListener(Console.Out)); testSuiteDir = args[0]; if (testSuiteDir.EndsWith("/")) { testSuiteDir = testSuiteDir.Substring(0, testSuiteDir.Length - 1); } resultsDir = args[1]; if (resultsDir.EndsWith("/")) { resultsDir = resultsDir.Substring(0, resultsDir.Length - 1); } string catalog = testSuiteDir + "/catalog.xml"; string specStr = null; for (int i = 2; i < args.Length; i++) { if (args[i].StartsWith("-t:")) { testPattern = new Regex(args[i].Substring(3)); } if (args[i].StartsWith("-s:")) { requestedTestSet = args[i].Substring(3); } if (args[i].StartsWith("-debug")) { debug = true; } if (args[i].Equals("-unfolded")) { unfolded = true; } if (args[i].Equals("-save")) { saveResults = true; } if (args[i].StartsWith("-bytecode")) { if (args[i].Substring(10).Equals("on")) { generateByteCode = 1; } else if (args[i].Substring(10).Equals("debug")) { generateByteCode = 2; } else { generateByteCode = 0; } } /* if (args[i].StartsWith("-tree")) * { * if (args[i].Substring(6).EqualsIgnoreCase("dom")) * { * treeModel = new DOMObjectModel(); * } * else if (args[i].Substring(6).EqualsIgnoreCase("jdom")) * { * treeModel = new JDOMObjectModel(); * } * else if (args[i].Substring(6).EqualsIgnoreCase("jdom2")) * { * treeModel = new JDOM2ObjectModel(); * } * else if (args[i].Substring(6).EqualsIgnoreCase("dom4j")) * { * treeModel = new DOM4JObjectModel(); * } * else if (args[i].Substring(6).EqualsIgnoreCase("xom")) * { * treeModel = new XOMObjectModel(); * } * else if (args[i].Substring(6).EqualsIgnoreCase("axiom")) * { * treeModel = new AxiomObjectModel(); * } * else if (args[i].Substring(6).EqualsIgnoreCase("tinytree")) * { * treeModel = TreeModel.TINY_TREE; * } * else if (args[i].Substring(6).EqualsIgnoreCase("condensed")) * { * treeModel = TreeModel.TINY_TREE_CONDENSED; * } * else if (args[i].Substring(6).EqualsIgnoreCase("linked")) * { * treeModel = TreeModel.LINKED_TREE; * } * else * { * throw new Exception("The TreeModel specified does not exist"); * } * }*/ if (args[i].StartsWith("-lang")) { specStr = args[i].Substring(6); processSpec(specStr); } // Temporary for controlling test processor if (args[i].StartsWith("-xt30")) { if (args[i].Substring(6).Equals("on")) { useXslt30Transformer = true; } else if (args[i].Substring(6).Equals("off")) { useXslt30Transformer = false; } } } if (resultsDir == null) { feedback.Message("No results directory specified (use -o:dirname)", true); /*if (guiForm == null) * { * System.exit(2); * }*/ } if (resultsDoc == null) { feedback.Message("No results document specified (use -lang option)", true); /*if (guiForm == null) * { * System.exit(2); * }*/ } driverSerializer.SetOutputStream(System.Console.OpenStandardError()); driverSerializer.SetOutputProperty(Serializer.OMIT_XML_DECLARATION, "yes"); processCatalog(catalog); printResults(resultsDir + "/results" + driverProc.ProductVersion + ".xml"); }
public void СериализацияProtoBuf(Stream Поток) { Serializer.Serialize(Поток, this); }
/// <summary> /// 解析WebApi的请求。 /// </summary> /// <param name="context">http上下文</param> private void ResolveWebApi(HttpContext context) { var watch = new System.Diagnostics.Stopwatch(); watch.Start(); Stream streamResponse = context.Request.InputStream; StreamReader streamRead = new StreamReader(streamResponse, Encoding.UTF8); string strResponse = streamRead.ReadToEnd(); streamResponse.Close(); streamRead.Close(); MethodDC theContract = new MethodDC(); ApiResultDC theResult = new ApiResultDC(); try { theContract = Serializer.Deserialize <MethodDC>(strResponse); ApiCore apiCpre = new ApiCore(theContract); var result = apiCpre.Invoke(); if (result.ResultType.Name.ToLower() != "void") { theResult.JsonValue = Serializer.Serialize(result.ResultValue); theResult.TypeQualifiedName = result.ResultType.AssemblyQualifiedName; } else { theResult.JsonValue = string.Empty; theResult.TypeQualifiedName = result.ResultType.AssemblyQualifiedName; } } catch (Exception ex) { if (ex.InnerException != null && ex.InnerException is Orm.Utilities.InformationException) { theResult.HasException = true; theResult.ExceptionMessage = ex.InnerException.Message; theResult.ExceptionState = 1; } else if (ex.InnerException is Orm.Utilities.WarningException) { theResult.HasException = true; theResult.ExceptionMessage = ex.InnerException.Message; theResult.ExceptionState = 2; } else if (ex.InnerException is Orm.Utilities.ErrorException) { theResult.HasException = true; theResult.ExceptionMessage = ex.InnerException.Message; theResult.ExceptionState = 2; } else { theResult.HasException = true; theResult.ExceptionMessage = ex.InnerException == null ? ex.Message : ex.InnerException.Message; theResult.ExceptionStack = ex.InnerException == null ? ex.StackTrace : ex.InnerException.StackTrace; } //Orm.Framework.Services.AppLogger.Log(ex.InnerException == null ? ex.Message : ex.InnerException.Message + "\r\n" + ex.StackTrace); StringBuilder errLog = new StringBuilder(); if (strResponse.Length > 500) { errLog.Append(strResponse.Substring(0, 500)); } else { errLog.Append(strResponse); } Orm.Framework.Services.AppLogger.Log(ex.InnerException == null ? "\r\n\r\n" + ex.Message + "\r\n\r\n" + ex.StackTrace + "\r\n\r\n" + errLog.ToString() : "\r\n\r\n" + ex.InnerException.Message + "\r\n\r\n" + ex.InnerException.StackTrace + "\r\n\r\n" + errLog.ToString()); } finally { //Orm.Redis.RedisAudit redis = new Orm.Redis.RedisAudit() { ClientIP = context.Request.UserHostAddress, ServiceName = theContract.InterfaceName, MethodName = theContract.MethodName, RequestTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), ElapsedTime = watch.ElapsedMilliseconds.ToString(), RequestArguments = JsonConvert.SerializeObject(theContract.ParameterList), Result = JsonConvert.SerializeObject(theResult) }; //TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); //Orm.Redis.RedisHelper.SetAsync(redis.ServiceName + "," + redis.MethodName + "," + redis.ClientIP + "," + redis.RequestTime + "," + Convert.ToInt64(ts.TotalSeconds).ToString(), JsonConvert.SerializeObject(redis), 3 * 60 * 60); } theContract.Result = theResult; string jsonResult = Serializer.Serialize(theContract); context.Response.Write(jsonResult); //如果返回的数据大点则采用GZip压缩。 if (jsonResult.Length > 10000) { //向输出流头部添加压缩信息 context.Response.AppendHeader("Content-encoding", "gzip"); context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress); } watch.Stop(); //写请求日志,用于跟踪请求的时间和数据大小。 if (watch.ElapsedMilliseconds > 2000) { StringBuilder errLog = new StringBuilder(); if (strResponse.Length > 500) { errLog.Append(strResponse.Substring(0, 500)); } else { errLog.Append(strResponse); } string strRequestTimeLog = string.Format("Url:{0} 大于2秒:{1} JSON:{2}", context.Request.Url.ToString(), watch.ElapsedMilliseconds.ToString(), errLog); // Orm.Framework.Services.AppLogger.Log(strRequestTimeLog, @"D:\PerformanceLog\" + DateTime.Now.ToString("yyyyMMdd"), AppDomain.CurrentDomain.Id.ToString() + ".log"); strRequestTimeLog = null; } //如果是大对象85000的10倍 if (System.Text.Encoding.Default.GetByteCount(jsonResult) > 840000) { StringBuilder errLog = new StringBuilder(); if (strResponse.Length > 500) { errLog.Append(strResponse.Substring(0, 500)); } else { errLog.Append(strResponse); } //向输出流头部添加压缩信息 // Orm.Framework.Services.AppLogger.Log(string.Format("Url:{0} 大于850K的对象:{1}", context.Request.Url.ToString(), errLog), @"D:\PerformanceLog\" + DateTime.Now.ToString("yyyyMMdd"), AppDomain.CurrentDomain.Id.ToString() + ".log"); } jsonResult = null; strResponse = null; }
public static void SavePlugins(string filename) { Serializer.Serialize(filename, Addins); }
public void TestNakedNullableEnumDeserialize() { Foo?foo = Serializer.Deserialize <Foo?>(Stream.Null); Assert.Null(foo); }
public static List <Addin> LoadPlugins(string filename) { return(Serializer.Deserialize <List <Addin> >(filename)); }
public void TestNakedNullableInt32Deserialize() { int?i = Serializer.Deserialize <int?>(Stream.Null); Assert.Null(i); }
public void Serialize(Serializer serializer) { serializer.Write(Header); serializer.WriteVarint(this.Unknown0); }
private static void ConfigureSerializer(HttpRequestConfiguration httpRequestConfiguration) { _serializer = httpRequestConfiguration.RequestContentType.Contains("xml") ? new Serializer(FhirSerializer.SerializeToXml) : FhirSerializer.SerializeToJson; }
public void TestWrappedNullableEnumDeserialize() { Bar bar = Serializer.Deserialize <Bar>(Stream.Null); Assert.Null(bar.Foo); }
public override bool CanSerialize(Serializer serializer, Type type) => type.FullName.StartsWith("Microsoft.FSharp.Collections.FSharpMap`2");
/// <summary> /// Serialize the value to yaml string. /// </summary> /// <param name="value"></param> /// <returns></returns> public static string ToYaml(object?value) => Serializer.Serialize(value);
public override bool CanDeserialize(Serializer serializer, Type type) { return(CanSerialize(serializer, type)); }
public override bool CanDeserialize(Serializer serializer, Type type) => CanSerialize(serializer, type);
private void SavePersonalFormValues() { var yaml = new Serializer().Serialize(new PersonalFormValues(DataExcelsDirectoryPath, TemplateExcelsDirectoryPath)); File.WriteAllText(PersonalFormValuesPath, yaml); }
public override ValueSerializer BuildSerializer(Serializer serializer, Type type, ConcurrentDictionary <Type, ValueSerializer> typeMapping) { var os = new ObjectSerializer(type); typeMapping.TryAdd(type, os);
public void SetUp() { serializer = new Serializer(new PropertiesExtractor()); }
public override bool CanSerialize(Serializer serializer, Type type) { return(type.IsSubclassOf(typeof(PropertyInfo))); }
public int SerializedSize() { return Serializer.SerializedSize(this as IAutoSerializable); }
private void SaveFormValues() { var yaml = new Serializer().Serialize(new FormValues(SeedPath, SettingPath)); File.WriteAllText(FormValuesPath, yaml); }
public byte[] Serialize() { return Serializer.Serialize(this as IAutoSerializable); }
public Header CreateHeader() { return Serializer.CreateHeader(this as IAutoSerializable); }
public static void UploadGroupPicByTCP(long sendQQ, long GroupId, byte[] uKey, string Ip, int Port) { var TcpClient = new TCPIPClient(Ip, Port); byte[] SendBytes = null; int UploadLen = 0; var TempFileBytes = API.FileBytes; byte[] PBBytes = null; UploadGroupPicStruct UploadPicBytes = new UploadGroupPicStruct(); while (TempFileBytes.Length > 0) { if (TempFileBytes.Length >= 8192) { SendBytes = TempFileBytes.Take(8192).ToArray(); } else { SendBytes = TempFileBytes; } UploadPicBytes = new UploadGroupPicStruct { UploadGroupPicSendInfo = new UploadGroupPicSendInfos { amout = 1, sendQQ = sendQQ.ToString(), SendCmd = "PicUp.DataUp", RaqId = (new Random()).Next(90000, 99999), field5 = 0, appId = 537061440, sendSize = 4096, flag = 2 }, UploadGroupPicFileInfo = new UploadGroupPicFileInfos { fileSize = API.FileBytes.Length, uploadSize = UploadLen, sendSize = SendBytes.Length, uKey = uKey, sendFileHash = API.MD5Hash(SendBytes), TotalHash = API.FileHash } }; using (var ms = new MemoryStream()) { Serializer.Serialize(ms, UploadPicBytes); Debug.Print("上传群图片:" + "\r\n" + BitConverter.ToString(ms.ToArray()).Replace("-", " ")); PBBytes = ms.ToArray(); } var bytes = new byte[] { 0x28 }; bytes = bytes.Concat(BitConverter.GetBytes(PBBytes.Length).Reverse().ToArray()).ToArray(); bytes = bytes.Concat(BitConverter.GetBytes(SendBytes.Length).Reverse().ToArray()).ToArray(); bytes = bytes.Concat(PBBytes).ToArray(); bytes = bytes.Concat(SendBytes).ToArray(); bytes = bytes.Concat(new byte[] { 0x29 }).ToArray(); Debug.Print("上传群图片打包:" + "\r\n" + BitConverter.ToString(bytes).Replace("-", " ")); TcpClient.SendData(bytes); TempFileBytes = TempFileBytes.Skip(SendBytes.Length).ToArray(); UploadLen = UploadLen + SendBytes.Length; } Debug.Print("上传群图片完成."); }
public void Deserialize(byte[] buffer) { Serializer.Deserialize(this as IAutoSerializable, buffer); }
public static API.GroupWithdrawInfo ParsingGroupMsg(byte[] byteIn) { string TextMsg = ""; string FaceMsg = ""; string HotPicMsg = ""; string PicMsg = ""; string AudioMsg = ""; string VideoMsg = ""; string ReplyMsg = ""; var byteLen = BitConverter.ToInt32(byteIn.Take(4).ToArray().Reverse().ToArray(), 0); byteIn = byteIn.Skip(4).ToArray(); using (MemoryStream ms = new MemoryStream(byteIn)) { try { var result = Serializer.Deserialize <GroupMsgStuct>(ms); long QQId = result.GroupInfo.GroupQQInfo.thisQQId; long QQFromId = result.GroupInfo.GroupQQInfo.QQFromId; long GroupId = result.GroupInfo.GroupQQInfo.GroupInfo.GroupId; string GroupName = result.GroupInfo.GroupQQInfo.GroupInfo.GroupName; API.GroupWithdraw.MsgReqId = result.GroupInfo.GroupQQInfo.fromReq; API.GroupWithdraw.MsgRandomId = result.GroupInfo.GroupMessageInfo.GroupMsgInfo.FontInfo.fromRandom; if (QQId == QQFromId) { return(API.GroupWithdraw); } var msgByte = result.GroupInfo.GroupMessageInfo.GroupMsgInfo.GroupMsgContent; Debug.Print("群消息内容:" + "\r\n" + BitConverter.ToString(msgByte).Replace("-", " ")); using (MemoryStream mStream = new MemoryStream(msgByte)) { var MsgResult = Serializer.Deserialize <GroupMessageStruct>(mStream); API.NickName = MsgResult.SendNick.NickName; if (MsgResult.GroupFileMessage != null) //有文件上传的消息 { var FileHash = MsgResult.GroupFileMessage.FileHash; } if (MsgResult.GroupReplyMessage != null) //是带回复的消息 { string replyContent = ""; for (var i = 0; i < MsgResult.GroupReplyMessage.OldMsgContent.Count; i++) { replyContent = replyContent + MsgResult.GroupReplyMessage.OldMsgContent[i].content.Replace("\n", "").Replace("\r", "").Replace("\r\n", ""); } ReplyMsg = " [Reply=@" + MsgResult.GroupReplyMessage.thisQQId.ToString() + "内容:" + replyContent + "]"; } if (MsgResult.GroupTextMsgContent != null) //有文本或小表情或热图内容 { for (var i = 0; i < MsgResult.GroupTextMsgContent.Count; i++) { TextMsg = TextMsg + MsgResult.GroupTextMsgContent[i].content; } } if (MsgResult.BigFace != null) //有大表情内容 { for (var i = 0; i <= MsgResult.BigFace.Count; i++) { var FaceId = MsgResult.BigFace[i].FaceId; FaceMsg = FaceMsg + " [BigFaceId=" + FaceId.ToString() + "]"; } } if (MsgResult.GroupPicMessageContent != null) //有图片内容 { for (var i = 0; i < MsgResult.GroupPicMessageContent.Count; i++) { PicMsg = PicMsg + "https://gchat.qpic.cn" + MsgResult.GroupPicMessageContent[i].PicAddr1.Substring(0, MsgResult.GroupPicMessageContent[i].PicAddr1.LastIndexOf("/")) + "/0 "; } PicMsg = "[pic,link=" + PicMsg + "]"; } if (result.GroupInfo.GroupMessageInfo.GroupMsgInfo.GroupAudioMsgContent != null) //有语音内容 { using (MemoryStream msStream = new MemoryStream(result.GroupInfo.GroupMessageInfo.GroupMsgInfo.GroupAudioMsgContent)) { var Ret = Serializer.Deserialize <AudioMessageStruct>(msStream); AudioMsg = "[Audio,link=" + "http://grouptalk.c2c.qq.com" + Ret.AudioUrl; } } if (MsgResult.GroupVideoMessageContent != null) //有视频内容 { for (var i = 0; i < MsgResult.GroupVideoMessageContent.Count; i++) { VideoMsg = VideoMsg + "[video,guid=" + MsgResult.GroupVideoMessageContent[i].VideoGuid + "]"; } } } SDK.GetResult(GroupId.ToString(), QQFromId.ToString(), "[" + GroupName + "]" + ReplyMsg + FaceMsg + HotPicMsg + TextMsg + PicMsg + AudioMsg + VideoMsg); var MsgSeq = result.GroupInfo.GroupQQInfo.fromReq; MakeReadedGroupMsg(GroupId, MsgSeq); } catch (Exception ex) { Debug.Print(ex.Message.ToString()); } } return(API.GroupWithdraw); }
public static API.GroupWithdrawInfo SendGroupAudio(byte[] BytesIn, byte[] filekey) { var timestamp = long.Parse(Convert.ToInt64(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds).ToString().Substring(0, 10)); List <SendMessages> MsgList = new List <SendMessages>(); BytesIn = BytesIn.Skip(4).ToArray(); using (var ms = new MemoryStream(BytesIn)) { var result = Serializer.Deserialize <GroupAudioHashStruct>(ms); var sAddr = API.Int32ToIP(result.GroupAudioHashInfo.IP); var Port = result.GroupAudioHashInfo.Port; var uKey = result.GroupAudioHashInfo.ukey; var token = result.GroupAudioHashInfo.token; SendGroupMsgInfos msg = new SendGroupMsgInfos { SendGroupMsg = new SendGroupMsgs { SendGroupAudioInfo = new SendGroupAudioInfos { Field1 = 4, AudioHash = filekey, AudioName = BitConverter.ToString(filekey).Replace("-", "") + ".amr", AudioSize = 4590, uKey = new byte[] { 0x16, 0x36, 0x20, 0x38, 0x36, 0x65, 0x41, 0x31, 0x4, 0x34, 0x38, 0x36, 0x34, 0x63, 0x32, 0x33, 0x63, 0x62, 0x34, 0x61, 0x33, 0x31, 0x36, 0x31, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x35, 0x30, 0x1A, 0x88, 0xF9, 0x2C, 0x88, 0x4D, 0xB1, 0xF5, 0xC, 0xB1, 0x5B, 0x33, 0xF8, 0xFA, 0x10, 0x6D, 0x31, 0x41, 0x38, 0x38, 0x46, 0x39, 0x32, 0x43, 0x38, 0x38, 0x34, 0x44, 0x42, 0x31, 0x46, 0x35, 0x30, 0x43, 0x42, 0x31, 0x35, 0x42, 0x33, 0x33, 0x46, 0x38, 0x46, 0x41, 0x31, 0x30, 0x36, 0x44, 0x2E, 0x61, 0x6D, 0x72, 0x41 }, IP = 1214562876, Field9 = 3030586896, Port = 80, Field11 = 1, token = token, Field19 = 0, AudioUrl = "/?ver=0&rkey=3062020101045b3059020101020101020416525dfe042439306a33676f4e4551795062466248363843666238536b49525067497264332357336872020457f8edde041f0000000866696c6574797065000000013100000005636f64656300000001310400&filetype=1&voice_codec=1", Field29 = 1, Field30 = new AudioUnKnownInfos { Field1 = 0 } } } }; SendGroupMsgStuct SendGroupMessage = new SendGroupMsgStuct { GroupInformation = new GroupInformations { GroupFrom = new GroupFroms { GroupId = API.GroupId } }, GroupMsgId = new byte[] { 8, 1, 0x10, 0, 0x18, 0 }, SendGroupMsgInfo = msg, MsgReqId = API.QQ.mRequestID, MsgRandomId = 0x10000000 + API.QQ.mRequestID, Groupcount = 1 }; API.GroupWithdraw.MsgReqId = API.QQ.mRequestID; API.GroupWithdraw.MsgRandomId = SendGroupMessage.MsgRandomId; using (var mStream = new MemoryStream()) { Serializer.Serialize(mStream, SendGroupMessage); Debug.Print("发送群语音消息:" + mStream.ToArray().Length.ToString() + "\r\n" + BitConverter.ToString(mStream.ToArray()).Replace("-", " ")); var SendBytes = API.PackCmdHeader("MessageSvc.PbSendMsg", mStream.ToArray()); API.TClient.SendData(API.PackAllHeader(SendBytes)); } //上传群语音 //var url = "http://" + sAddr + "/?ver=4679&ukey=" + BitConverter.ToString(uKey).Replace("-", "") + "&filekey=" + BitConverter.ToString(filekey).Replace("-", "") + "&filesize=" + fileSize.ToString() + "&range=0&bmd5=" + BitConverter.ToString(filekey).Replace("-", "") + "&mType=pttGu&Audio_codec=1"; //Dictionary<string, object> Headerdics = new Dictionary<string, object>() //{ // {"Accept-Encoding", "identity"}, // {"User-Agent", "Dalvik/2.1.0 (Linux; U; Android 5.0; SM-G9009D Build/LRX21T"}, // {"Content-Type", "application/x-www-form-urlencoded"}, // {"Host", sAddr} //}; //var res = HttpClientPostAsync2(url, Headerdics, fileByte, "application/x-www-form-urlencoded", mycookiecontainer, RedirectUrl).Result; } return(API.GroupWithdraw); }