Inheritance: ISerParser
 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);
 }
Example #2
0
        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));
        }
Example #3
0
        // Deserialize the stream into an object graph.
        public Object Deserialize(Stream serializationStream, HeaderHandler handler)
        {
            InternalST.InfoSoap("Enter SoapFormatter.Deserialize ");
            if (serializationStream == null)
            {
                throw new ArgumentNullException("serializationStream");
            }

            if (serializationStream.CanSeek && (serializationStream.Length == 0))
            {
                throw new SerializationException(SoapUtil.GetResourceString("Serialization_Stream"));
            }

            InternalST.Soap(this, "Deserialize Entry");
            InternalFE formatterEnums = new InternalFE();

            formatterEnums.FEtypeFormat         = m_typeFormat;
            formatterEnums.FEtopObject          = m_topObject;
            formatterEnums.FEserializerTypeEnum = InternalSerializerTypeE.Soap;
            formatterEnums.FEassemblyFormat     = m_assemblyFormat;
            formatterEnums.FEsecurityLevel      = m_securityLevel;
            ObjectReader sor = new ObjectReader(serializationStream, m_surrogates, m_context, formatterEnums, m_binder);

            // If this is the first call, or a new stream is being used a new Soap parser is created.
            // If this is a continuing call, then the existing SoapParser is used.
            // One stream can contains multiple Soap XML documents. The XMLParser buffers the XML so
            // that the same XMLParser has to be used to continue a stream.
            if ((soapParser == null) || (serializationStream != currentStream))
            {
                soapParser    = new SoapParser(serializationStream);
                currentStream = serializationStream;
            }
            soapParser.Init(sor);
            Object obj = sor.Deserialize(handler, soapParser);

            InternalST.InfoSoap("Leave SoapFormatter.Deserialize ");
            return(obj);
        }
Example #4
0
        int nextPrefix = 0; // Used to generate a prefix if necessary

        internal SoapHandler(SoapParser soapParser)
        {
            this.soapParser = soapParser;
        }
    	// Deserialize the stream into an object graph.
		public Object Deserialize(Stream serializationStream, HeaderHandler handler) {
			InternalST.InfoSoap("Enter SoapFormatter.Deserialize ");			
            if (serializationStream==null) {
                throw new ArgumentNullException("serializationStream");
            }

			if (serializationStream.CanSeek && (serializationStream.Length == 0))
				throw new SerializationException(SoapUtil.GetResourceString("Serialization_Stream"));								

			InternalST.Soap( this, "Deserialize Entry");
			InternalFE formatterEnums = new InternalFE();
			formatterEnums.FEtypeFormat = m_typeFormat;
			formatterEnums.FEtopObject = m_topObject;
			formatterEnums.FEserializerTypeEnum = InternalSerializerTypeE.Soap;
			formatterEnums.FEassemblyFormat = m_assemblyFormat;
			formatterEnums.FEsecurityLevel = m_securityLevel;              
			ObjectReader sor = new ObjectReader(serializationStream, m_surrogates, m_context, formatterEnums, m_binder);

			// If this is the first call, or a new stream is being used a new Soap parser is created.
			// If this is a continuing call, then the existing SoapParser is used.
			// One stream can contains multiple Soap XML documents. The XMLParser buffers the XML so
			// that the same XMLParser has to be used to continue a stream.
			if ((soapParser == null) || (serializationStream != currentStream))
			{
				soapParser = new SoapParser(serializationStream);
				currentStream = serializationStream;
			}
			soapParser.Init(sor);
			Object obj = sor.Deserialize(handler, soapParser);
			InternalST.InfoSoap("Leave SoapFormatter.Deserialize ");
			return obj;
		}