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

Abstract getter confuses auto property mapping

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major - P3 Major - P3
    • None
    • 2.10.2
    • Serialization
    • None
    • Windows

    Description

          [BsonDiscriminator(RootClass = true)]
          [BsonKnownTypes(typeof(Apple))]
          [BsonIgnoreExtraElements]
          public abstract class Fruit {
             [BsonIgnore]        
             public abstract string Color { get; }    
          }
       
          [BsonIgnoreExtraElements]
          public class Apple : Fruit 
          {
              [BsonConstructor]
              public Apple( int seeds ) {
                  Seeds = seeds;
              }
       
              public int Seeds { get; }
              
              [BsonIgnore] 
              public override string Color => "Red";
          }
      

      Throws exception: 

      BsonSerializationException : Member 'Seeds' is not mapped.

       

      The same occurs if we use a hardcoded base constructor argument instead of an abstract property

       [BsonConstructor] 
       public Apple(int seeds) : base ( color: "Red" )
       {
          Seeds = seeds; 
       }
      

       

       

      Attachments

        Activity

          People

            dmitry.lukyanov@mongodb.com Dmitry Lukyanov (Inactive)
            mjrmua@gmail.com Murray Long
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: