diff options
| author | stefan <stefan@hegedues.at> | 2018-09-12 19:26:21 +0200 |
|---|---|---|
| committer | stefan <stefan@hegedues.at> | 2018-09-12 19:26:21 +0200 |
| commit | 48facb797ed912e4ea6b04b17d1ff190ac2daac4 (patch) | |
| tree | 8dae77a31670a888d733484cb17dd4077d5444e8 /Emby.Server.Implementations/Serialization/JsonSerializer.cs | |
| parent | c32d8656382a0eacb301692e0084377fc433ae9b (diff) | |
Update to 3.5.2 and .net core 2.1
Diffstat (limited to 'Emby.Server.Implementations/Serialization/JsonSerializer.cs')
| -rw-r--r-- | Emby.Server.Implementations/Serialization/JsonSerializer.cs | 52 |
1 files changed, 50 insertions, 2 deletions
diff --git a/Emby.Server.Implementations/Serialization/JsonSerializer.cs b/Emby.Server.Implementations/Serialization/JsonSerializer.cs index c9db33689..26371d21d 100644 --- a/Emby.Server.Implementations/Serialization/JsonSerializer.cs +++ b/Emby.Server.Implementations/Serialization/JsonSerializer.cs @@ -3,6 +3,7 @@ using System.IO; using MediaBrowser.Model.IO; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Serialization; +using System.Threading.Tasks; namespace Emby.Common.Implementations.Serialization { @@ -60,7 +61,7 @@ namespace Emby.Common.Implementations.Serialization throw new ArgumentNullException("file"); } - using (Stream stream = _fileSystem.GetFileStream(file, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read)) + using (Stream stream = _fileSystem.GetFileStream(file, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read)) { SerializeToStream(obj, stream); } @@ -68,7 +69,7 @@ namespace Emby.Common.Implementations.Serialization private Stream OpenFile(string path) { - _logger.Debug("Deserializing file {0}", path); + //_logger.Debug("Deserializing file {0}", path); return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, 131072); } @@ -135,6 +136,21 @@ namespace Emby.Common.Implementations.Serialization return ServiceStack.Text.JsonSerializer.DeserializeFromStream<T>(stream); } + public async Task<T> DeserializeFromStreamAsync<T>(Stream stream) + { + if (stream == null) + { + throw new ArgumentNullException("stream"); + } + + using (var reader = new StreamReader(stream)) + { + var json = await reader.ReadToEndAsync().ConfigureAwait(false); + + return ServiceStack.Text.JsonSerializer.DeserializeFromString<T>(json); + } + } + /// <summary> /// Deserializes from string. /// </summary> @@ -174,6 +190,26 @@ namespace Emby.Common.Implementations.Serialization return ServiceStack.Text.JsonSerializer.DeserializeFromStream(type, stream); } + public async Task<object> DeserializeFromStreamAsync(Stream stream, Type type) + { + if (stream == null) + { + throw new ArgumentNullException("stream"); + } + + if (type == null) + { + throw new ArgumentNullException("type"); + } + + using (var reader = new StreamReader(stream)) + { + var json = await reader.ReadToEndAsync().ConfigureAwait(false); + + return ServiceStack.Text.JsonSerializer.DeserializeFromString(json, type); + } + } + /// <summary> /// Configures this instance. /// </summary> @@ -184,6 +220,18 @@ namespace Emby.Common.Implementations.Serialization ServiceStack.Text.JsConfig.IncludeNullValues = false; ServiceStack.Text.JsConfig.AlwaysUseUtc = true; ServiceStack.Text.JsConfig.AssumeUtc = true; + + ServiceStack.Text.JsConfig<Guid>.SerializeFn = SerializeGuid; + } + + private string SerializeGuid(Guid guid) + { + if (guid.Equals(Guid.Empty)) + { + return null; + } + + return guid.ToString("N"); } /// <summary> |
