public static T Deserialize <T>(this JsonSerializer serializer, Stream input, Encoding encoding = default) { serializer.EnsureNotNull(nameof(serializer)); input.EnsureNotNull(nameof(input)); // using (var textReader = new StreamReader(stream: input, encoding: encoding ?? Encoding.UTF8, detectEncodingFromByteOrderMarks: false, bufferSize: TextReaderWriterUtilities.DefaultBufferSize, leaveOpen: true)) using (var jsonReader = new JsonTextReader(textReader)) return(serializer.Deserialize <T>(reader: jsonReader)); }
public static string SerializeToJson <T>(this T @object, JsonSerializer serializer, bool indent) { @object.EnsureNotNull(nameof(@object)); serializer.EnsureNotNull(nameof(serializer)); // using (var acquiredBuffer = EonStringBuilderUtilities.AcquireBufferUnlimCapacity()) using (var stringWriter = new StringWriter(sb: acquiredBuffer.StringBuilder)) using (var jsonWriter = new JsonTextWriter(textWriter: stringWriter)) { if (indent) { jsonWriter.Formatting = Formatting.Indented; jsonWriter.Indentation = 1; jsonWriter.IndentChar = '\x0009'; } else { jsonWriter.Formatting = Formatting.None; } serializer.Serialize(jsonWriter, @object); jsonWriter.Flush(); return(acquiredBuffer.StringBuilder.ToString()); } }