/* Copyright 2010-2014 MongoDB Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System; using MongoDB.Bson.IO; namespace MongoDB.Bson.Serialization { /// /// An interface implemented by BSON serializers. /// public interface IBsonSerializer { /// /// Deserializes an object from a BsonReader. /// /// The BsonReader. /// The nominal type of the object. /// The serialization options. /// An object. object Deserialize(BsonReader bsonReader, Type nominalType, IBsonSerializationOptions options); /// /// Deserializes an object from a BsonReader. /// /// The BsonReader. /// The nominal type of the object. /// The actual type of the object. /// The serialization options. /// An object. object Deserialize(BsonReader bsonReader, Type nominalType, Type actualType, IBsonSerializationOptions options); /// /// Gets the default serialization options for this serializer. /// /// The default serialization options for this serializer. IBsonSerializationOptions GetDefaultSerializationOptions(); /// /// Serializes an object to a BsonWriter. /// /// The BsonWriter. /// The nominal type. /// The object. /// The serialization options. void Serialize(BsonWriter bsonWriter, Type nominalType, object value, IBsonSerializationOptions options); } }