/ serialize the value in the stream asynchronously. Var ser = JsonSerializer.Create( settings ) Using (var jsonWriter = new JsonTextWriter(writer)) Using (var writer = new StreamWriter(stream,encoding: 32,bufferSize,leaveOpen)) Public static void JsonSerialize(this Stream stream, T value, JsonSerializerSettings settings, int bufferSize=1024, bool leaveOpen=false) / The buffer size, in bytes, set -1 to not flush till done Public static async Task JsonSerializeAsync(this FileInfo file, T value, JsonSerializerSettings settings, CancellationToken cancellationToken=default)Īwait stream.JsonSerializeAsync(value, settings,bufferSize:1024,leaveOpen:false, cancellationToken).ConfigureAwait(false) Public static async Task JsonSerializeAsync(this FileInfo file, T value, CancellationToken cancellationToken = default)Īwait stream.JsonSerializeAsync(value, _settings,bufferSize:1024,leaveOpen:false, cancellationToken).ConfigureAwait(false) / Propagates notification that operations should be canceled. / File will be refreshed to contain the new meta data If (string.IsNullOrEmpty(file.DirectoryName) = true & Directory.Exists(file.DirectoryName) = false) Public static void JsonSerialize(this FileInfo file, T value, JsonSerializerSettings settings) If (string.IsNullOrEmpty(file.DirectoryName)=true & Directory.Exists(file.DirectoryName) = false)ĭirectory.CreateDirectory(file.FullName) Public static void JsonSerialize(this FileInfo file, T value) Public static void JsonSerialize(this Stream stream, T value) _settings.DateFormatHandling = DateFormatHandling.IsoDateFormat _settings.DateTimeZoneHandling = DateTimeZoneHandling.Utc _settings.ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor _settings = JsonConvert.DefaultSettings?.Invoke() ? new JsonSerializerSettings() You'd need to create the extension methods, here is the whole set: public static class JsonStreamReaderExt MyType obj2 = " should already exist in the hash set") Using (FileStream fileStream = new FileStream(fileName, FileMode.Open))ĭeserializing is now as easy as writing: MyType obj1 = aStream.CreateFromJsonStream() Public static T CreateFromJsonFile(this String fileName) Using (MemoryStream stream = new MemoryStream(.GetBytes(json))) Public static T CreateFromJsonString(this String json) Using (StreamReader streamReader = new StreamReader(stream))ĭata = (T)serializer.Deserialize(streamReader, typeof(T)) JsonSerializer serializer = new JsonSerializer() Public static T CreateFromJsonStream(this Stream stream) I've written an extension class to help me deserializing from JSON sources (string, stream, file).
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |