private object NoCheckDeserialize(Stream serializationStream, HeaderHandler handler)
{
if (serializationStream == null)
{
throw new ArgumentNullException("serializationStream");
}
if (serializationStream.CanSeek && serializationStream.Length == 0L)
{
throw new SerializationException("serializationStream supports seeking, but its length is 0");
}
BinaryReader binaryReader = new BinaryReader(serializationStream);
bool flag;
this.ReadBinaryHeader(binaryReader, out flag);
BinaryElement binaryElement = (BinaryElement)binaryReader.Read();
if (binaryElement == BinaryElement.MethodCall)
{
return(MessageFormatter.ReadMethodCall(binaryElement, binaryReader, flag, handler, this));
}
if (binaryElement == BinaryElement.MethodResponse)
{
return(MessageFormatter.ReadMethodResponse(binaryElement, binaryReader, flag, handler, null, this));
}
ObjectReader objectReader = new ObjectReader(this);
object result;
Header[] headers;
objectReader.ReadObjectGraph(binaryElement, binaryReader, flag, out result, out headers);
if (handler != null)
{
handler(headers);
}
return(result);
}