BinarySerializer.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / Serializers / BinarySerializer.cs / 1305376 / BinarySerializer.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
//      Provides a serializer for binary content.
//  
// 
// @owner  [....]
//--------------------------------------------------------------------- 

namespace System.Data.Services.Serializers
{
    using System.Diagnostics; 
    using System.IO;
    using System.Xml; 
 
    /// Provides support for serializing responses in binary format.
    ///  
    /// The file histroy should show a BinaryExceptionTextWriter which is no longer used.
    /// 
    internal struct BinarySerializer : IExceptionWriter
    { 
        /// Stream to which output is sent.
        private readonly Stream outputStream; 
 
        /// Initializes a new  for the specified stream.
        /// Stream to which output should be sent. 
        internal BinarySerializer(Stream output)
        {
            Debug.Assert(output != null, "output != null");
            this.outputStream = output; 
        }
 
        /// Serializes exception information. 
        /// Description of exception to serialize.
        public void WriteException(HandleExceptionArgs args) 
        {
            Debug.Assert(args != null, "args != null");
            XmlWriter xmlWriter = XmlWriter.Create(this.outputStream);
            ErrorHandler.SerializeXmlError(args, xmlWriter); 
            xmlWriter.Flush();
        } 
 
        /// Handles the complete serialization for the specified content.
        /// Single Content to write.. 
        ///  should be a byte array.
        internal void WriteRequest(object content)
        {
            Debug.Assert(content != null, "content != null"); 

            // The metadata layer should only accept byte arrays as binary-serialized values. 
            byte[] bytes; 
            if (content is byte[])
            { 
                bytes = (byte[])content;
            }
            else
            { 
                bytes = (byte[])((System.Data.Linq.Binary)content).ToArray();
            } 
 
            this.outputStream.Write(bytes, 0, bytes.Length);
        } 

        /// Handles the complete serialization for the specified stream.
        /// Input stream to write out.
        /// Buffer size to use during copying. 
        internal void WriteRequest(Stream inputStream, int bufferSize)
        { 
            Debug.Assert(inputStream != null, "stream != null"); 
            WebUtil.CopyStream(inputStream, this.outputStream, bufferSize);
        } 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
//      Provides a serializer for binary content.
//  
// 
// @owner  [....]
//--------------------------------------------------------------------- 

namespace System.Data.Services.Serializers
{
    using System.Diagnostics; 
    using System.IO;
    using System.Xml; 
 
    /// Provides support for serializing responses in binary format.
    ///  
    /// The file histroy should show a BinaryExceptionTextWriter which is no longer used.
    /// 
    internal struct BinarySerializer : IExceptionWriter
    { 
        /// Stream to which output is sent.
        private readonly Stream outputStream; 
 
        /// Initializes a new  for the specified stream.
        /// Stream to which output should be sent. 
        internal BinarySerializer(Stream output)
        {
            Debug.Assert(output != null, "output != null");
            this.outputStream = output; 
        }
 
        /// Serializes exception information. 
        /// Description of exception to serialize.
        public void WriteException(HandleExceptionArgs args) 
        {
            Debug.Assert(args != null, "args != null");
            XmlWriter xmlWriter = XmlWriter.Create(this.outputStream);
            ErrorHandler.SerializeXmlError(args, xmlWriter); 
            xmlWriter.Flush();
        } 
 
        /// Handles the complete serialization for the specified content.
        /// Single Content to write.. 
        ///  should be a byte array.
        internal void WriteRequest(object content)
        {
            Debug.Assert(content != null, "content != null"); 

            // The metadata layer should only accept byte arrays as binary-serialized values. 
            byte[] bytes; 
            if (content is byte[])
            { 
                bytes = (byte[])content;
            }
            else
            { 
                bytes = (byte[])((System.Data.Linq.Binary)content).ToArray();
            } 
 
            this.outputStream.Write(bytes, 0, bytes.Length);
        } 

        /// Handles the complete serialization for the specified stream.
        /// Input stream to write out.
        /// Buffer size to use during copying. 
        internal void WriteRequest(Stream inputStream, int bufferSize)
        { 
            Debug.Assert(inputStream != null, "stream != null"); 
            WebUtil.CopyStream(inputStream, this.outputStream, bufferSize);
        } 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK