System.Runtime.Remoting.Channels.SoapClientFormatterSink.SerializeMessage C# (CSharp) Method

SerializeMessage() private method

private SerializeMessage ( IMethodCallMessage mcm, ITransportHeaders &headers, Stream &stream ) : void
mcm IMethodCallMessage
headers ITransportHeaders
stream Stream
return void
        private void SerializeMessage(IMethodCallMessage mcm, 
                                      out ITransportHeaders headers, out Stream stream)
        {
            BaseTransportHeaders requestHeaders = new BaseTransportHeaders();
            headers = requestHeaders;
        
            // add SOAPAction header
            MethodBase mb = mcm.MethodBase;
            headers["SOAPAction"] = 
                '"' + 
                HttpEncodingHelper.EncodeUriAsXLinkHref(
                    SoapServices.GetSoapActionFromMethodBase(mb)) + 
                '"';

            // add other http soap headers
            requestHeaders.ContentType = CoreChannel.SOAPContentType;
            if (_channelProtocol == SinkChannelProtocol.Http)
                headers["__RequestVerb"] = "POST";

            bool bMemStream = false;
            stream = _nextSink.GetRequestStream(mcm, headers);
            if (stream == null)
            {
                stream = new ChunkedMemoryStream(CoreChannel.BufferPool);
                bMemStream = true;
            }
            CoreChannel.SerializeSoapMessage(mcm, stream, _includeVersioning);
            if (bMemStream)
                stream.Position = 0;
        } // SerializeMessage