Uploaded image for project: 'C# Driver'
  1. C# Driver
  2. CSHARP-1725

Member type is superclass and value type is subclass, IQueryable toarray serialize failed

    • Type: Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 2.2.4
    • Component/s: LINQ
    • None
    • Environment:
      Windows 10
    • None
    • None
    • None
    • None
    • None
    • None

      I have a object to be serialized, in the CLR class, I defined the member as type like PropertyContainer, then for the instacen, its value is set to type like NamedProperty which is subclass of propertyContainer, and when I called queryable toArray method, driver failed to serialize the content as it find the two type are mismatched,

      • message: "Value type of serializer is System.Web.OData.Query.Expressions.PropertyContainer+NamedProperty`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] and does not match member type System.Web.OData.Query.Expressions.PropertyContainer. Parameter name: serializer",
      • type: "System.ArgumentException",
      • stacktrace: "
      at MongoDB.Bson.Serialization.BsonMemberMap.SetSerializer(IBsonSerializer serializer) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Bson\Serialization\BsonMemberMap.cs:line 477
      at MongoDB.Driver.Linq.Processors.SerializerBuilder.BuildClassMap(Type type, ProjectionMapping mapping) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\SerializerBuilder.cs:line 167
      at MongoDB.Driver.Linq.Processors.SerializerBuilder.BuildProjectedSerializer(ProjectionMapping mapping) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\SerializerBuilder.cs:line 123
      at MongoDB.Driver.Linq.Processors.SerializerBuilder.BuildMemberInit(MemberInitExpression node) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\SerializerBuilder.cs:line 106
      at MongoDB.Driver.Linq.Processors.SerializerBuilder.Build(Expression node) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\SerializerBuilder.cs:line 52
      at MongoDB.Driver.Linq.Processors.SerializerBuilder.BuildClassMap(Type type, ProjectionMapping mapping) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\SerializerBuilder.cs:line 160
      at MongoDB.Driver.Linq.Processors.SerializerBuilder.BuildClassMap(Type type, ProjectionMapping mapping) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\SerializerBuilder.cs:line 148
      at MongoDB.Driver.Linq.Processors.SerializerBuilder.BuildClassMap(Type type, ProjectionMapping mapping) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\SerializerBuilder.cs:line 148
      at MongoDB.Driver.Linq.Processors.SerializerBuilder.BuildProjectedSerializer(ProjectionMapping mapping) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\SerializerBuilder.cs:line 123
      at MongoDB.Driver.Linq.Processors.SerializerBuilder.BuildMemberInit(MemberInitExpression node) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\SerializerBuilder.cs:line 106
      at MongoDB.Driver.Linq.Processors.SerializerBuilder.Build(Expression node) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\SerializerBuilder.cs:line 52
      at MongoDB.Driver.Linq.Processors.SerializerBuilder.Build(Expression node, IBsonSerializerRegistry serializerRegistry) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\SerializerBuilder.cs:line 31
      at MongoDB.Driver.Linq.Processors.PipelineBindingContext.GetSerializer(Type type, Expression node) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\Pipeline\PipelineBindingContext.cs:line 90
      at MongoDB.Driver.Linq.Processors.PipelineBindingContext.BindProjector(Expression& selector) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\Pipeline\PipelineBindingContext.cs:line 98
      at MongoDB.Driver.Linq.Processors.Pipeline.MethodCallBinders.SelectBinder.Bind(PipelineExpression pipeline, PipelineBindingContext bindingContext, MethodCallExpression node, IEnumerable`1 arguments) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\Pipeline\MethodCallBinders\SelectBinder.cs:line 45
      at MongoDB.Driver.Linq.Processors.MethodInfoMethodCallBinder`1.Bind(PipelineExpression pipeline, TBindingContext bindingContext, MethodCallExpression node, IEnumerable`1 arguments) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\MethodInfoMethodCallBinder.cs:line 41
      at MongoDB.Driver.Linq.Processors.PipelineBinderBase`1.BindMethodCall(MethodCallExpression node) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\PipelineBinderBase.cs:line 97
      at MongoDB.Driver.Linq.Processors.PipelineBinderBase`1.Bind(Expression node) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\PipelineBinderBase.cs:line 58
      at MongoDB.Driver.Linq.Processors.Pipeline.PipelineBinder.Bind(Expression node, IBsonSerializerRegistry serializerRegistry) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\Processors\Pipeline\PipelineBinder.cs:line 62
      at MongoDB.Driver.Linq.MongoQueryProviderImpl`1.Prepare(Expression expression) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\MongoQueryProviderImpl.cs:line 122
      at MongoDB.Driver.Linq.MongoQueryProviderImpl`1.Translate(Expression expression) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\MongoQueryProviderImpl.cs:line 129
      at MongoDB.Driver.Linq.MongoQueryProviderImpl`1.Execute(Expression expression) in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\MongoQueryProviderImpl.cs:line 77
      at MongoDB.Driver.Linq.MongoQueryableImpl`2.GetEnumerator() in D:\dev\githome\external\mongo-csharp-driver\src\MongoDB.Driver\Linq\MongoQueryableImpl.cs:line 60 at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)

            Assignee:
            Unassigned Unassigned
            Reporter:
            chinadragon0515 chinadragon0515
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: