public void SerializesClassWithCustomValueObjectUsingCustomTypeConverter() { IMongoConfigurationMap cfg = new MongoConfigurationMap(); cfg.TypeConverterFor <NonSerializableValueObject, NonSerializableValueObjectTypeConverter>(); BsonSerializer.UseConfiguration(cfg); // Verify that a contained, normally unserializable, value can be serialized with a proper type converter var s1 = new NonSerializableClass() { Value = new NonSerializableValueObject("12345"), Text = "Abc" }; var bytes = BsonSerializer.Serialize(s1); var s2 = BsonDeserializer.Deserialize <NonSerializableClass>(bytes); Assert.Equal(s1.Value.Number, s2.Value.Number); Assert.Equal(s1.Text, s2.Text); BsonSerializer.UseConfiguration(null); }