示例#1
0
        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);
        }