protected object Deserialize(JsonReader reader, Type type) { using (RavenJTokenReader tokenReader = new RavenJTokenReader(RavenJToken.ReadFrom(reader))) { return(serializer.Deserialize(tokenReader, type)); } }
private T DeserializedResult <T>(RavenJObject result) { if (projectionFields != null && projectionFields.Length == 1) // we only select a single field { var type = typeof(T); if (type == typeof(string) || typeof(T).IsValueType || typeof(T).IsEnum) { return(result.Value <T>(projectionFields[0])); } } var jsonSerializer = sessionOperations.Conventions.CreateSerializer(); var ravenJTokenReader = new RavenJTokenReader(result); var resultTypeString = result.Value <string>("$type"); if (string.IsNullOrEmpty(resultTypeString)) { return((T)jsonSerializer.Deserialize(ravenJTokenReader, typeof(T))); } var resultType = Type.GetType(resultTypeString, false); if (resultType == null) // couldn't find the type, let us give it our best shot { return((T)jsonSerializer.Deserialize(ravenJTokenReader, typeof(T))); } return((T)jsonSerializer.Deserialize(ravenJTokenReader, resultType)); }
public virtual object Deserialize(Stream stream, System.Type type) { using (StreamReader r = new StreamReader(stream)) using (var jsonReader = new JsonTextReader(r)) using (RavenJTokenReader tokenReader = new RavenJTokenReader(RavenJToken.ReadFrom(jsonReader))) { return(serializer.Deserialize(tokenReader, type)); } }
protected override object DeserializeMessage(Stream input) { using (var streamReader = new StreamReader(input)) using (var jsonReader = new JsonTextReader(streamReader)) using (RavenJTokenReader tokenReader = new RavenJTokenReader(RavenJToken.ReadFrom(jsonReader))) { return(serializer.Deserialize(tokenReader)); } }
public void FileHeaderSerialization() { var metadata = new RavenJObject { { Constants.LastModified, "2014-07-07T12:00:00.0000000" }, { Constants.FileSystem.RavenFsSize, "128" } }; var fileHeader = new FileHeader("test1.file", metadata); var serializedValue = JsonExtensions.ToJObject(fileHeader); var jr = new RavenJTokenReader(serializedValue); var deserializedValue = JsonExtensions.CreateDefaultJsonSerializer().Deserialize <FileHeader>(jr); Assert.NotNull(deserializedValue); Assert.Equal(fileHeader.Name, deserializedValue.Name); Assert.Equal(fileHeader.LastModified, deserializedValue.LastModified); }
public void ConflictNotificationSerialization() { var metadata = new RavenJObject { { Constants.LastModified, "2014-07-07T12:00:00.0000000" }, { Constants.FileSystem.RavenFsSize, "128" } }; var fileHeader = new FileHeader("test1.file", metadata); var notification = new ConflictNotification() { FileName = "test1.file", SourceServerUrl = "http://destination", RemoteFileHeader = fileHeader, Status = ConflictStatus.Detected }; var serializedValue = JsonExtensions.ToJObject(notification); var jr = new RavenJTokenReader(serializedValue); var deserializedValue = JsonExtensions.CreateDefaultJsonSerializer().Deserialize <ConflictNotification>(jr); Assert.NotNull(deserializedValue); }
private T DeserializedResult <T>(RavenJObject result) { var type = typeof(T); if (type == typeof(string) || typeof(T).IsValueType() || typeof(T).IsEnum()) { if (projectionFields != null && projectionFields.Length == 1) // we only select a single field { return(result.Value <T>(projectionFields[0])); } switch (result.Count) { case 1: return(result.Value <T>(result.Keys.First())); case 2: if (result.ContainsKey(Constants.Metadata)) { return(result.Value <T>(result.Keys.First(x => x != Constants.Metadata))); } break; } } var jsonSerializer = sessionOperations.Conventions.CreateSerializer(); var ravenJTokenReader = new RavenJTokenReader(result); var resultTypeString = result.Value <string>("$type"); if (string.IsNullOrEmpty(resultTypeString)) { return((T)jsonSerializer.Deserialize(ravenJTokenReader, typeof(T))); } var resultType = Type.GetType(resultTypeString, false); if (resultType == null) // couldn't find the type, let us give it our best shot { return((T)jsonSerializer.Deserialize(ravenJTokenReader, typeof(T))); } return((T)jsonSerializer.Deserialize(ravenJTokenReader, resultType)); }