-
Type:
Bug
-
Resolution: Done
-
Priority:
Major - P3
-
None
-
Affects Version/s: 2.0.1
-
Component/s: API
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Given the following classes:
public class C { public int Id; public X X; } public class X { public int A; }
And the following sample data in a collection:
> db.test.find() { "_id" : 1, "X" : { "A" : 2 } } >
The following code compiles correctly but throws an exception at runtime:
var collection = __database.GetCollection<C>("test"); var result = await collection.Aggregate() .Project(c => c.X) .ToListAsync();
The stack trace is:
Unhandled exception: System.FormatException: Element 'X' does not match any field or property of class ConsoleApplication.X. at MongoDB.Bson.Serialization.BsonClassMapSerializer`1.DeserializeClass(BsonDeserializationContext context) in c:\work\rstam\mongo-csharp-driver\src\MongoDB.Bson\Serialization\Serializers\BsonClassMapSerializer.cs:line 209 at MongoDB.Bson.Serialization.BsonClassMapSerializer`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) in c:\work\rstam\mongo-csharp-driver\src\MongoDB.Bson\Serialization\Serializers\BsonClassMapSerializer.cs:line 96 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) in c:\work\rstam\mongo-csharp-driver\src\MongoDB.Bson\Serialization\IBsonSerializerExtensions.cs:line 48 at MongoDB.Bson.Serialization.Serializers.EnumerableSerializerBase`2.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) in c:\work\rstam\mongo-csharp-driver\src\MongoDB.Bson\Serialization\Serializers\EnumerableSerializerBase.cs:line 286 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) in c:\work\rstam\mongo-csharp-driver\src\MongoDB.Bson\Serialization\IBsonSerializerExtensions.cs:line 48 at MongoDB.Driver.Core.Operations.AggregateOperation`1.CursorDeserializer.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) in c:\work\rstam\mongo-csharp-driver\src\MongoDB.Driver.Core\Core\Operations\AggregateOperation.cs:line 327 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) in c:\work\rstam\mongo-csharp-driver\src\MongoDB.Bson\Serialization\IBsonSerializerExtensions.cs:line 48 at MongoDB.Driver.Core.Operations.AggregateOperation`1.AggregateResultDeserializer.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) in c:\work\rstam\mongo-csharp-driver\src\MongoDB.Driver.Core\Core\Operations\AggregateOperation.cs:line 285 at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) in c:\work\rstam\mongo-csharp-driver\src\MongoDB.Bson\Serialization\IBsonSerializerExtensions.cs:line 48 at MongoDB.Driver.Core.WireProtocol.CommandWireProtocol`1.ProcessReply(ConnectionId connectionId, ReplyMessage`1 reply) in c:\work\rstam\mongo-csharp-driver\src\MongoDB.Driver.Core\Core\WireProtocol\CommandWireProtocol.cs:line 164 ... and a bunch more less useful stuff