private object ReadFromStream(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger) { var root = GetRootFieldName(type); var contentHeaders = content == null ? null : content.Headers; // If content length is 0 then return default value for this type if (contentHeaders != null && contentHeaders.ContentLength == 0) { return(GetDefaultValueForType(type)); } // Get the character encoding for the content var effectiveEncoding = SelectCharacterEncoding(contentHeaders); try { using (var reader = (new StreamReader(readStream, effectiveEncoding))) { var json = reader.ReadToEnd(); var serializer = new EmberJsonSerializer(); var deserialized = serializer.Deserialize(json, root); return(deserialized.ToObject(type)); } } catch (Exception e) { if (formatterLogger == null) { throw; } formatterLogger.LogError(String.Empty, e); return(GetDefaultValueForType(type)); } }
private object ReadFromStream(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger) { var root = GetRootFieldName(type); var contentHeaders = content == null ? null : content.Headers; // If content length is 0 then return default value for this type if (contentHeaders != null && contentHeaders.ContentLength == 0) return GetDefaultValueForType(type); // Get the character encoding for the content var effectiveEncoding = SelectCharacterEncoding(contentHeaders); try { using (var reader = (new StreamReader(readStream, effectiveEncoding))) { var json = reader.ReadToEnd(); var serializer = new EmberJsonSerializer(); var deserialized = serializer.Deserialize(json, root); return deserialized.ToObject(type); } } catch (Exception e) { if (formatterLogger == null) { throw; } formatterLogger.LogError(String.Empty, e); return GetDefaultValueForType(type); } }