using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; namespace JsonRPC4.Router.Abstractions { public static class RpcResponseSerializerExtensions { public static async Task SerializeAsync(this IRpcResponseSerializer serializer, RpcResponse response) { using (MemoryStream stream = new MemoryStream()) { await serializer.SerializeAsync(response, stream); return await GetStringAsync(stream); } } public static async Task SerializeBulkAsync(this IRpcResponseSerializer serializer, IEnumerable responses) { using (MemoryStream stream = new MemoryStream()) { await serializer.SerializeBulkAsync(responses, stream); return await GetStringAsync(stream); } } private static Task GetStringAsync(MemoryStream stream) { stream.Position = 0L; return new StreamReader(stream).ReadToEndAsync(); } } }