Search code examples
c#mongodb

Implement for all classes BsonIgnoreExtraElements


I'm using mongDb with MongoDrive, I wonder how I can implement to all my classes the [BsonIgnoreExtraElements].

I know there is a way through the ConventionProfile, but I do not know how to implement it.


Solution

  • Edit

    Per Evereq's comment, the below is obsolete. Now use:

    var conventionPack = new ConventionPack { new IgnoreExtraElementsConvention(true) };
    ConventionRegistry.Register("IgnoreExtraElements", conventionPack, type => true);
    

    Use the SetIgnoreExtraElementsConvention method (from the Conventions section of the C# Driver Serialization Tutorial):

    var myConventions = new ConventionProfile();
    myConventions.SetIgnoreExtraElementsConvention(new AlwaysIgnoreExtraElementsConvention()));
    BsonClassMap.RegisterConventions(myConventions, (type) => true);
    

    The parameter (type) => true is a predicate depending on the class type, that determines whether to apply the convention. So per your requirement it should simply return true regardless; but you could use this to set/exclude the convention on given types if you wanted.