示例#1
0
 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));
 }
示例#2
0
 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());
             }
 }