public object Deserialize(Stream serializationStream, HeaderHandler handler)
{
if (serializationStream == null)
{
throw new ArgumentNullException("serializationStream");
}
if (serializationStream.CanSeek && (serializationStream.Length == 0L))
{
throw new SerializationException(SoapUtil.GetResourceString("Serialization_Stream"));
}
InternalFE formatterEnums = new InternalFE {
FEtypeFormat = this.m_typeFormat,
FEtopObject = this.m_topObject,
FEserializerTypeEnum = InternalSerializerTypeE.Soap,
FEassemblyFormat = this.m_assemblyFormat,
FEsecurityLevel = this.m_securityLevel
};
ObjectReader objectReader = new ObjectReader(serializationStream, this.m_surrogates, this.m_context, formatterEnums, this.m_binder);
if ((this.soapParser == null) || (serializationStream != this.currentStream))
{
this.soapParser = new SoapParser(serializationStream);
this.currentStream = serializationStream;
}
this.soapParser.Init(objectReader);
return(objectReader.Deserialize(handler, this.soapParser));
}