/// <inheritdoc /> public async Task Serialize <TSerializableType>(Stream stream, TSerializableType serializable, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); await SystemTextJsonSerializer.SerializeAsync(stream, serializable, options, cancellationToken); stream.Position = 0; }
public void SerializeJSON(IEnumerable <Factory> factories, string fileName) //работает { if (File.Exists(fileName)) { File.Delete(fileName); } using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate)) { var options = new JsonSerializerOptions { IncludeFields = true }; JsonSerializer.SerializeAsync <List <Factory> >(fs, factories.ToList(), options).Wait(); } }
public async Task <string> SerializeRequest(BaseRequest request, Type requestType, HttpDataSerializerOptions options = null) { var opts = TextJsonSerializerSettings.CreateJsonSerializerOptions(options, _debugMode); using (var stream = new MemoryStream()) { await JsonSerializer.SerializeAsync(stream, request, requestType, opts); stream.Position = 0; using (var reader = new StreamReader(stream)) { var result = await reader.ReadToEndAsync(); return(result); } } }
private static async Task NetCore3JsonTest() { #if PRINT_BREAKDOWN var swSerialize = new Stopwatch(); var swDeserialize = new Stopwatch(); #endif var jsonSerializerOptions = new JsonSerializerOptions { IgnoreNullValues = true }; await using var stream = new MemoryStream(); for (var i = 0; i < Loop; i++) { #if PRINT_BREAKDOWN swSerialize.Start(); #endif await CoreJsonSerializer.SerializeAsync(stream, Source, jsonSerializerOptions); #if PRINT_BREAKDOWN swSerialize.Stop(); #endif stream.Position = 0; #if PRINT_BREAKDOWN swDeserialize.Start(); #endif var book = await CoreJsonSerializer.DeserializeAsync <Book>(stream); #if PRINT_BREAKDOWN swDeserialize.Stop(); #endif stream.Position = 0; Trace.Assert(book.Title != null); } #if PRINT_BREAKDOWN Console.WriteLine($"Serialize: {swSerialize.ElapsedMilliseconds / (double) Loop:F3} ms/op, Deserialize: {swDeserialize.ElapsedMilliseconds / (double) Loop:F3} ms/op"); #endif }