public static BsonMemberMap SetNaosSerializer(this BsonMemberMap map) { new { map }.Must().NotBeNull(); var serializer = BsonConfigurationBase.GetAppropriateSerializer(map.MemberType); return(map.SetSerializer(serializer)); }
/// <summary> /// Initializes a new instance of the <see cref="NaosBsonSerializer"/> class. /// </summary> /// <param name="configurationType">Optional <see cref="BsonConfigurationBase"/> implementation to use; default is <see cref="NullBsonConfiguration"/>.</param> /// <param name="unregisteredTypeEncounteredStrategy">Optional strategy of what to do when encountering a type that has never been registered; DEFAULT is <see cref="UnregisteredTypeEncounteredStrategy.Throw" />.</param> public NaosBsonSerializer( Type configurationType = null, UnregisteredTypeEncounteredStrategy unregisteredTypeEncounteredStrategy = UnregisteredTypeEncounteredStrategy.Default) : base(configurationType ?? typeof(NullBsonConfiguration), unregisteredTypeEncounteredStrategy) { if (configurationType != null) { configurationType.IsSubclassOf(typeof(BsonConfigurationBase)).Named( Invariant($"Configuration type - {configurationType.FullName} - must derive from {nameof(BsonConfigurationBase)}.")).Must().BeTrue(); configurationType.HasParameterlessConstructor().Named( Invariant($"{nameof(configurationType)} must contain a default constructor to use in {nameof(NaosBsonSerializer)}.")).Must().BeTrue(); } this.bsonConfiguration = (BsonConfigurationBase)this.configuration; }