예제 #1
0
        public override T Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
        {
            if (context.Reader.CurrentBsonType == BsonType.Null)
            {
                context.Reader.ReadNull();
                return(default(T));
            }

            var id = context.Reader.ReadString();

            return(MongoFlatIdSerializerHelper.ToIdentity <T>(id));
        }
예제 #2
0
        public override T[] Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
        {
            if (context.Reader.CurrentBsonType == BsonType.Null)
            {
                context.Reader.ReadNull();
                return(null);
            }

            List <T> retValue = new List <T>();

            context.Reader.ReadStartArray();

            while (context.Reader.ReadBsonType() == BsonType.String)
            {
                var id = context.Reader.ReadString();
                retValue.Add(MongoFlatIdSerializerHelper.ToIdentity <T>(id));
            }

            context.Reader.ReadEndArray();
            return(retValue.ToArray());
        }