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(); }
private static BsonSerializationArgs GetValueSerializationArgs(BsonSerializationArgs args) => ArgumentHelper.GetSpecificSerializationArgs(args, 1);
private static BsonSerializationArgs GetItemSerializationArgs(BsonSerializationArgs optionArgs) => ArgumentHelper.GetSpecificSerializationArgs(optionArgs);