Пример #1
0
        private void SerializeMember(BsonSerializationContext context, TClass document, BsonMemberMap memberMap)
        {
            IBsonWriter bsonWriter = context.Writer;
            object      value      = memberMap.Getter(document);

            if (memberMap.ShouldSerialize(document, value))
            {
                bsonWriter.WriteName(memberMap.ElementName);
                memberMap.GetSerializer().Serialize(context, value);
            }
        }
Пример #2
0
        public void Should_not_serialize_empty_enumerables()
        {
            var           bsonClassMap  = new BsonClassMap <ComplexSubDocument>();
            BsonMemberMap bsonMemberMap = bsonClassMap.MapMember(cr => cr.ComplexValueList);
            var           ignoreEmptyEnumerableConvention = new IgnoreEmptyEnumerablesConvention();

            ignoreEmptyEnumerableConvention.Apply(bsonMemberMap);
            var complexSubDocument = new ComplexSubDocument();

            complexSubDocument.ComplexValueList.Clear();
            Assert.False(bsonMemberMap.ShouldSerialize(complexSubDocument, complexSubDocument.ComplexValueList));
        }
        public void Should_not_serialize_null_or_empty_strings(string value)
        {
            var           bsonClassMap  = new BsonClassMap <SimpleRecord>();
            BsonMemberMap bsonMemberMap = bsonClassMap.MapMember(cr => cr.StringProperty);
            var           ignoreNullOrEmptyStringsConvention = new IgnoreNullOrEmptyStringsConvention();

            ignoreNullOrEmptyStringsConvention.Apply(bsonMemberMap);
            var simpleRecord = new SimpleRecord
            {
                StringProperty = value
            };

            Assert.Equal(!string.IsNullOrEmpty(value), bsonMemberMap.ShouldSerialize(simpleRecord, simpleRecord.StringProperty));
        }
Пример #4
0
        public void Should_serialize_non_empty_enumerables()
        {
            var           bsonClassMap  = new BsonClassMap <ComplexSubDocument>();
            BsonMemberMap bsonMemberMap = bsonClassMap.MapMember(cr => cr.ComplexValueList);
            var           ignoreEmptyEnumerableConvention = new IgnoreEmptyEnumerablesConvention();

            ignoreEmptyEnumerableConvention.Apply(bsonMemberMap);
            var complexSubDocument = new ComplexSubDocument
            {
                ComplexValueList =
                {
                    new ComplexType(),
                    new ComplexType(),
                    new ComplexType()
                }
            };

            Assert.True(bsonMemberMap.ShouldSerialize(complexSubDocument, complexSubDocument.ComplexValueList));
        }