Hello,
I need to deserialize an object with guid properties insite a Put trigger, but it seems that Raven doesn't like it very much, it complains with OutOfRangeException.
This code throws OutOfRangeException:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Raven.Abstractions.Extensions;
using Raven.Bundles.UpdateCascade;
using Raven.Json.Linq;
namespace CannotDeserialize
{
public class Foo
{
public Guid Guid { get; set; }
}
class Program
{
static void Main(string[] args)
{
var foo1 = new Foo { Guid = Guid.NewGuid() };
RavenJObject doc = RavenJObject.FromObject(foo1);
// this fails with OutOfRangeException
var foo2 = doc.JsonDeserialization<Foo>();
}
}
}
Exception details:
System.ArgumentOutOfRangeException was unhandled
Message=Unexpected JTokenType.
Actual value was Guid.
Parameter name: Type
Source=Raven.Abstractions
ParamName=Type
StackTrace:
at Raven.Json.Linq.RavenJTokenReader.GetJsonTokenType(RavenJToken token) in c:\Builds\RavenDB-Unstable-v1.2\Raven.Abstractions\Json\Linq\RavenJTokenReader.cs:line 421
at Raven.Json.Linq.RavenJTokenReader.<ReadRavenJToken>d__0.MoveNext() in c:\Builds\RavenDB-Unstable-v1.2\Raven.Abstractions\Json\Linq\RavenJTokenReader.cs:line 370
at Raven.Json.Linq.RavenJTokenReader.<ReadRavenJToken>d__0.MoveNext() in c:\Builds\RavenDB-Unstable-v1.2\Raven.Abstractions\Json\Linq\RavenJTokenReader.cs:line 390
at Raven.Json.Linq.RavenJTokenReader.Read() in c:\Builds\RavenDB-Unstable-v1.2\Raven.Abstractions\Json\Linq\RavenJTokenReader.cs:line 359
at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter) in c:\Builds\RavenDB-Unstable-v1.2\Imports\Newtonsoft.Json\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs:line 1236
at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) in c:\Builds\RavenDB-Unstable-v1.2\Imports\Newtonsoft.Json\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs:line 1361
at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) in c:\Builds\RavenDB-Unstable-v1.2\Imports\Newtonsoft.Json\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs:line 359
at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) in c:\Builds\RavenDB-Unstable-v1.2\Imports\Newtonsoft.Json\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs:line 229
at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) in c:\Builds\RavenDB-Unstable-v1.2\Imports\Newtonsoft.Json\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs:line 152
at Raven.Imports.Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) in c:\Builds\RavenDB-Unstable-v1.2\Imports\Newtonsoft.Json\Src\Newtonsoft.Json\JsonSerializer.cs:line 546
at Raven.Imports.Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType) in c:\Builds\RavenDB-Unstable-v1.2\Imports\Newtonsoft.Json\Src\Newtonsoft.Json\JsonSerializer.cs:line 512
at Raven.Abstractions.Extensions.JsonExtensions.JsonDeserialization[T](RavenJObject self) in c:\Builds\RavenDB-Unstable-v1.2\Raven.Abstractions\Extensions\JsonExtensions.cs:line 83
at CannotDeserialize.Program.Main(String[] args) in C:\GitHubRepositories\UpdateCascadeBundle\CannotDeserialize\Program.cs:line 26
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: