-
Type:
Task
-
Resolution: Done
-
Priority:
Major - P3
-
None
-
Affects Version/s: 2.0
-
Component/s: Serialization
-
Environment:Windows 8.1 x64
MongoDB version: v2.6.5
-
None
-
None
-
None
-
None
-
None
-
None
-
None
I have custom discriminator inherited from IDiscriminatorConvention. It adds type discriminator element (i.e. {"_t":8}) to all saved instances.
FindOneAndUpdateAsync methods throws deserialization exception:
System.AggregateException : One or more errors occurred.
----> MongoDB.Bson.BsonSerializationException : Unknown discriminator value '2'.
Fluent Find method deserializes instances without any problem respecting my discriminator convention.
Detailed stack trace:
System.AggregateException : One or more errors occurred. ----> MongoDB.Bson.BsonSerializationException : Unknown discriminator value '2'. Result StackTrace: at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task`1.get_Result() at MongoConnect.Extensions.RunSync[T](Task`1 task) in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect\Utl\Extensions.cs:line 14 at MongoConnect.MongoDbProvider.UpdatePropertyInternal(UpdateOperation op, IPersistentObject obj, String propertyName, Object value) in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect\Providers\MongoDbProvider.cs:line 123 at MongoConnect.MongoDbProvider.IncrementProperty(IPersistentObject obj, String propertyName, Int32 increment) in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect\Providers\MongoDbProvider.cs:line 93 at MongoConnect.BaseDataObject.IncrementProperty(String propertyName, Int32 value) in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect\BasicObjects\BaseDataObject.cs:line 229 at MongoConnect.BaseDataObject.IncrementProperty[T](Expression`1 expression, Int32 value) in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect\BasicObjects\BaseDataObject.cs:line 256 at MongoConnect.Tests.AtomicUpdateTests.IncrementPropertyTest() in c:\dev\MongoConnectPrev\MongoConnect\MongoConnect.Tests\DB\AtomicUpdateTests.cs:line 31 --BsonSerializationException at MongoDB.Bson.Serialization.BsonSerializer.LookupActualType(Type nominalType, BsonValue discriminator) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\BsonSerializer.cs:line 328 at MongoDB.Bson.Serialization.Conventions.ObjectDiscriminatorConvention.GetActualType(IBsonReader bsonReader, Type nominalType) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\Conventions\ObjectDiscriminatorConvention.cs:line 125 at MongoDB.Bson.Serialization.Serializers.DiscriminatedInterfaceSerializer`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\Serializers\DiscriminatedInterfaceSerializer.cs:line 80 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\IBsonSerializerExtensions.cs:line 48 at MongoDB.Driver.Core.Operations.ElementDeserializer`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\Operations\ElementDeserializer.cs:line 64 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\IBsonSerializerExtensions.cs:line 48 at MongoDB.Driver.Core.Operations.FindAndModifyValueDeserializer`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\Operations\FindAndModifyValueDeserializer.cs:line 44 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Bson\Serialization\IBsonSerializerExtensions.cs:line 48 at MongoDB.Driver.Core.WireProtocol.CommandWireProtocol`1.ProcessReply(ConnectionId connectionId, ReplyMessage`1 reply) in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\WireProtocol\CommandWireProtocol.cs:line 104 at MongoDB.Driver.Core.WireProtocol.CommandWireProtocol`1.<ExecuteAsync>d__0.MoveNext() in d:\jenkins\workspace\mongo-csharp-driver-build\src\MongoDB.Driver.Core\Core\WireProtocol\CommandWireProtocol.cs:line 98