示例#1
0
 /// <summary>
 ///     Deserialize an object.
 /// </summary>
 /// <param name="entityReader">
 ///     The entity reader.
 /// </param>
 /// <param name="destinationType">
 ///     The destination type.
 /// </param>
 /// <param name="serialized">
 ///     The serialized object.
 /// </param>
 /// <param name="count">
 ///     The size of the serialized object.
 /// </param>
 /// <param name="deserializingEntity">
 ///     The deserializing entity delegate.
 /// </param>
 /// <returns>
 ///     The deserialized object.
 /// </returns>
 internal static object Deserialize(EntityReader entityReader, Type destinationType, byte[] serialized, int count,
                                    DeserializingEntity deserializingEntity)
 {
     using (var binaryReader = new BinaryArrayReader(serialized, 0, count)) {
         return(new EntityDeserializer(entityReader, binaryReader, deserializingEntity).Deserialize(
                    destinationType, Decoder.ReadTag(binaryReader)));
     }
 }
示例#2
0
 /// <summary>
 ///     Deserialize an object.
 /// </summary>
 /// <param name="entityReader">
 ///     The entity reader.
 /// </param>
 /// <param name="destinationType">
 ///     The destination type.
 /// </param>
 /// <param name="buffer">
 ///     The serialized object.
 /// </param>
 /// <param name="length">
 ///     The buffer length.
 /// </param>
 /// <param name="deserializingEntity">
 ///     The deserializing entity delegate.
 /// </param>
 /// <returns>
 ///     The deserialized object.
 /// </returns>
 internal static object Deserialize(EntityReader entityReader, Type destinationType, IntPtr buffer, int length,
                                    DeserializingEntity deserializingEntity)
 {
     using (var binaryReader = new BinaryArrayReader(buffer, length)) {
         return(new EntityDeserializer(entityReader, binaryReader, deserializingEntity).Deserialize(
                    destinationType, Decoder.ReadTag(binaryReader)));
     }
 }
示例#3
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="EntityDeserializer" /> class.
 /// </summary>
 /// <param name="entityReader">
 ///     The entity reader.
 /// </param>
 /// <param name="binaryReader">
 ///     The binary reader.
 /// </param>
 /// <param name="deserializingEntity">
 ///     The deserializing entity delegate.
 /// </param>
 private EntityDeserializer(EntityReader entityReader, BinaryReader binaryReader,
                            DeserializingEntity deserializingEntity)
     : base(binaryReader)
 {
     this.entityReader         = entityReader;
     this.entityScanner        = entityReader.EntityScanner;
     this.entityBindingContext = this.entityScanner.EntityContext;
     this.deserializingEntity  = deserializingEntity;
 }
示例#4
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="EntityDeserializer" /> class.
 /// </summary>
 /// <param name="entityReader">
 ///     The entity reader.
 /// </param>
 /// <param name="binaryReader">
 ///     The binary reader.
 /// </param>
 /// <param name="deserializingEntity">
 ///     The deserializing entity delegate.
 /// </param>
 private EntityDeserializer(EntityReader entityReader, BinaryReader binaryReader,
                            DeserializingEntity deserializingEntity)
     : base(binaryReader, entityReader.EntityScanner.EntityContext.Configuration.Context)
 {
     this.entityReader        = entityReader;
     this.entityScanner       = entityReader.EntityScanner;
     this.entityContext       = this.entityScanner.EntityContext;
     this.deserializingEntity = deserializingEntity;
 }