public override T FromStream <T>(Stream stream) { if (typeof(Stream).IsAssignableFrom(typeof(T))) { return((T)(object)stream); } try { using var streamReader = new StreamReader(stream, DefaultEncoding, true, 1024, leaveOpen: true); using var jsonReader = new JsonTextReader(streamReader); return(SerializerSettings.CreateSerializer().Deserialize <T>(jsonReader)); } finally { stream?.Close(); } }