XmlSerializableWriter.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 / cdf / src / WCF / Serialization / System / Runtime / Serialization / XmlSerializableWriter.cs / 1305376 / XmlSerializableWriter.cs

                            //------------------------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Runtime.Serialization
{ 
    using System;
    using System.Xml; 
 
    internal class XmlSerializableWriter : XmlWriter
    { 
        XmlWriter xmlWriter;
        int depth = 0;
        object obj;
 
        internal void BeginWrite(XmlWriter xmlWriter, object obj)
        { 
            depth = 0; 
            this.xmlWriter = xmlWriter;
            this.obj = obj; 
        }

        internal void EndWrite()
        { 
            if (depth != 0)
                throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableMissingEndElements, (obj == null ? string.Empty : DataContract.GetClrTypeFullName(obj.GetType()))))); 
            this.obj = null; 
        }
 
        public override void WriteStartDocument()
        {
            if (WriteState == WriteState.Start)
                xmlWriter.WriteStartDocument(); 
        }
        public override void WriteEndDocument() { xmlWriter.WriteEndDocument(); } 
        public override void WriteStartDocument(bool standalone) 
        {
            if (WriteState == WriteState.Start) 
                xmlWriter.WriteStartDocument(standalone);
        }
        public override void WriteDocType(string name, string pubid, string sysid, string subset)
        { 
            // XmlSerializer does not write doc type
        } 
 
        public override void WriteStartElement(string prefix, string localName, string ns)
        { 
            xmlWriter.WriteStartElement(prefix, localName, ns);
            depth++;
        }
 
        public override  void WriteEndElement()
        { 
            if (depth == 0) 
                throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableWritePastSubTree, (obj == null ? string.Empty : DataContract.GetClrTypeFullName(obj.GetType())))));
            xmlWriter.WriteEndElement(); 
            depth--;
        }

        public override  void WriteFullEndElement() 
        {
            if (depth == 0) 
                throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableWritePastSubTree, (obj == null ? string.Empty : DataContract.GetClrTypeFullName(obj.GetType()))))); 
            xmlWriter.WriteFullEndElement();
            depth--; 
        }

        public override void Close()
        { 
            throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableIllegalOperation)));
        } 
 
        public override  void WriteStartAttribute(string prefix, string localName, string ns)
        { 
            xmlWriter.WriteStartAttribute(prefix, localName, ns);
        }

        public override void WriteEndAttribute() {xmlWriter.WriteEndAttribute();} 
        public override void WriteCData(string text) {xmlWriter.WriteCData(text);}
        public override void WriteComment(string text) {xmlWriter.WriteComment(text);} 
        public override void WriteProcessingInstruction(string name, string text) {xmlWriter.WriteProcessingInstruction(name, text);} 
        public override void WriteEntityRef(string name) {xmlWriter.WriteEntityRef(name);}
        public override void WriteCharEntity(char ch) {xmlWriter.WriteCharEntity(ch);} 
        public override void WriteWhitespace(string ws) {xmlWriter.WriteWhitespace(ws);}
        public override void WriteString(string text) {xmlWriter.WriteString(text);}
        public override void WriteSurrogateCharEntity(char lowChar, char highChar){xmlWriter.WriteSurrogateCharEntity(lowChar, highChar);}
        public override void WriteChars(Char[] buffer, int index, int count) {xmlWriter.WriteChars(buffer, index, count);} 
        public override void WriteRaw(Char[] buffer, int index, int count) {xmlWriter.WriteRaw(buffer, index, count);}
        public override void WriteRaw(String data) {xmlWriter.WriteRaw(data);} 
        public override void WriteBase64(byte[] buffer, int index, int count) {xmlWriter.WriteBase64(buffer, index, count);} 
        public override void WriteBinHex(byte[] buffer, int index, int count) {xmlWriter.WriteBinHex(buffer, index, count);}
        public override WriteState WriteState { get { return xmlWriter.WriteState; } } 
        public override void Flush() { xmlWriter.Flush(); }
        public override void WriteName(string name) {xmlWriter.WriteName(name);}
        public override void WriteQualifiedName(string localName, string ns) {xmlWriter.WriteQualifiedName(localName, ns);}
        public override string LookupPrefix(string ns) {return xmlWriter.LookupPrefix(ns);} 
        public override XmlSpace XmlSpace { get { return xmlWriter.XmlSpace; } }
        public override string XmlLang { get { return xmlWriter.XmlLang; } } 
        public override void WriteNmToken(string name) {xmlWriter.WriteNmToken(name);} 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Runtime.Serialization
{ 
    using System;
    using System.Xml; 
 
    internal class XmlSerializableWriter : XmlWriter
    { 
        XmlWriter xmlWriter;
        int depth = 0;
        object obj;
 
        internal void BeginWrite(XmlWriter xmlWriter, object obj)
        { 
            depth = 0; 
            this.xmlWriter = xmlWriter;
            this.obj = obj; 
        }

        internal void EndWrite()
        { 
            if (depth != 0)
                throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableMissingEndElements, (obj == null ? string.Empty : DataContract.GetClrTypeFullName(obj.GetType()))))); 
            this.obj = null; 
        }
 
        public override void WriteStartDocument()
        {
            if (WriteState == WriteState.Start)
                xmlWriter.WriteStartDocument(); 
        }
        public override void WriteEndDocument() { xmlWriter.WriteEndDocument(); } 
        public override void WriteStartDocument(bool standalone) 
        {
            if (WriteState == WriteState.Start) 
                xmlWriter.WriteStartDocument(standalone);
        }
        public override void WriteDocType(string name, string pubid, string sysid, string subset)
        { 
            // XmlSerializer does not write doc type
        } 
 
        public override void WriteStartElement(string prefix, string localName, string ns)
        { 
            xmlWriter.WriteStartElement(prefix, localName, ns);
            depth++;
        }
 
        public override  void WriteEndElement()
        { 
            if (depth == 0) 
                throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableWritePastSubTree, (obj == null ? string.Empty : DataContract.GetClrTypeFullName(obj.GetType())))));
            xmlWriter.WriteEndElement(); 
            depth--;
        }

        public override  void WriteFullEndElement() 
        {
            if (depth == 0) 
                throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableWritePastSubTree, (obj == null ? string.Empty : DataContract.GetClrTypeFullName(obj.GetType()))))); 
            xmlWriter.WriteFullEndElement();
            depth--; 
        }

        public override void Close()
        { 
            throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableIllegalOperation)));
        } 
 
        public override  void WriteStartAttribute(string prefix, string localName, string ns)
        { 
            xmlWriter.WriteStartAttribute(prefix, localName, ns);
        }

        public override void WriteEndAttribute() {xmlWriter.WriteEndAttribute();} 
        public override void WriteCData(string text) {xmlWriter.WriteCData(text);}
        public override void WriteComment(string text) {xmlWriter.WriteComment(text);} 
        public override void WriteProcessingInstruction(string name, string text) {xmlWriter.WriteProcessingInstruction(name, text);} 
        public override void WriteEntityRef(string name) {xmlWriter.WriteEntityRef(name);}
        public override void WriteCharEntity(char ch) {xmlWriter.WriteCharEntity(ch);} 
        public override void WriteWhitespace(string ws) {xmlWriter.WriteWhitespace(ws);}
        public override void WriteString(string text) {xmlWriter.WriteString(text);}
        public override void WriteSurrogateCharEntity(char lowChar, char highChar){xmlWriter.WriteSurrogateCharEntity(lowChar, highChar);}
        public override void WriteChars(Char[] buffer, int index, int count) {xmlWriter.WriteChars(buffer, index, count);} 
        public override void WriteRaw(Char[] buffer, int index, int count) {xmlWriter.WriteRaw(buffer, index, count);}
        public override void WriteRaw(String data) {xmlWriter.WriteRaw(data);} 
        public override void WriteBase64(byte[] buffer, int index, int count) {xmlWriter.WriteBase64(buffer, index, count);} 
        public override void WriteBinHex(byte[] buffer, int index, int count) {xmlWriter.WriteBinHex(buffer, index, count);}
        public override WriteState WriteState { get { return xmlWriter.WriteState; } } 
        public override void Flush() { xmlWriter.Flush(); }
        public override void WriteName(string name) {xmlWriter.WriteName(name);}
        public override void WriteQualifiedName(string localName, string ns) {xmlWriter.WriteQualifiedName(localName, ns);}
        public override string LookupPrefix(string ns) {return xmlWriter.LookupPrefix(ns);} 
        public override XmlSpace XmlSpace { get { return xmlWriter.XmlSpace; } }
        public override string XmlLang { get { return xmlWriter.XmlLang; } } 
        public override void WriteNmToken(string name) {xmlWriter.WriteNmToken(name);} 
    }
} 

// 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