예제 #1
0
        public override void Serialize(BsonSerializationContext context, BsonSerializationArgs args, Map <A, B> value)
        {
            var writer = context.Writer;

            var keySerializationArgs   = ArgumentHelper.GetSpecificSerializationArgs(args);
            var valueSerializationArgs = ArgumentHelper.GetSpecificSerializationArgs(args, 1);

            writer.WriteStartArray();
            foreach (var(k, v) in value)
            {
                writer.WriteStartDocument();
                writer.WriteName(Key);
                _keySerializer.Serialize(context, keySerializationArgs, k);
                writer.WriteName(Value);
                _valueSerializer.Serialize(context, valueSerializationArgs, v);
                writer.WriteEndDocument();
            }

            writer.WriteEndArray();
        }
예제 #2
0
 private static BsonSerializationArgs GetValueSerializationArgs(BsonSerializationArgs args)
 => ArgumentHelper.GetSpecificSerializationArgs(args, 1);
예제 #3
0
 private static BsonSerializationArgs GetItemSerializationArgs(BsonSerializationArgs optionArgs)
 => ArgumentHelper.GetSpecificSerializationArgs(optionArgs);