MongoDB.Bson.Serialization.Serializers.StringSerializer.Serialize C# (CSharp) Метод

Serialize() публичный Метод

Serializes an object to a BsonWriter.
public Serialize ( BsonWriter bsonWriter, Type nominalType, object value, IBsonSerializationOptions options ) : void
bsonWriter MongoDB.Bson.IO.BsonWriter The BsonWriter.
nominalType System.Type The nominal type.
value object The object.
options IBsonSerializationOptions The serialization options.
Результат void
        public override void Serialize(
            BsonWriter bsonWriter,
            Type nominalType,
            object value,
            IBsonSerializationOptions options)
        {
            if (value == null)
            {
                bsonWriter.WriteNull();
            }
            else
            {
                var stringValue = (string)value;
                var representationSerializationOptions = EnsureSerializationOptions<RepresentationSerializationOptions>(options);

                switch (representationSerializationOptions.Representation)
                {
                    case BsonType.ObjectId:
                        bsonWriter.WriteObjectId(ObjectId.Parse(stringValue));
                        break;
                    case BsonType.String:
                        bsonWriter.WriteString(stringValue);
                        break;
                    case BsonType.Symbol:
                        bsonWriter.WriteSymbol(stringValue);
                        break;
                    default:
                        var message = string.Format("'{0}' is not a valid String representation.", representationSerializationOptions.Representation);
                        throw new BsonSerializationException(message);
                }
            }
        }
    }

Usage Example

        public override void Serialize(BsonWriter bsonWriter, Type nominalType, object value, IBsonSerializationOptions options)
        {
            if (value == null)
              {
            bsonWriter.WriteNull();
            return;
              }

              var serializer = new StringSerializer();
              var nvc = (NameValueCollection) value;

              bsonWriter.WriteStartArray();
              foreach (var key in nvc.AllKeys)
              {
            foreach (var val in nvc.GetValues(key))
            {
              bsonWriter.WriteStartArray();
              serializer.Serialize(bsonWriter, typeof (string), key, options);
              serializer.Serialize(bsonWriter, typeof (string), val, options);
              bsonWriter.WriteEndArray();
            }
              }
              bsonWriter.WriteEndArray();
        }