Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Xml / XmlDictionaryWriter.cs / 1305376 / XmlDictionaryWriter.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Xml { using System; using System.IO; using System.Xml; using System.Collections; using System.Diagnostics; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Security; using System.Text; public abstract class XmlDictionaryWriter : XmlWriter { static public XmlDictionaryWriter CreateBinaryWriter(Stream stream) { return CreateBinaryWriter(stream, null); } static public XmlDictionaryWriter CreateBinaryWriter(Stream stream, IXmlDictionary dictionary) { return CreateBinaryWriter(stream, dictionary, null); } static public XmlDictionaryWriter CreateBinaryWriter(Stream stream, IXmlDictionary dictionary, XmlBinaryWriterSession session) { return CreateBinaryWriter(stream, dictionary, session, true); } static public XmlDictionaryWriter CreateBinaryWriter(Stream stream, IXmlDictionary dictionary, XmlBinaryWriterSession session, bool ownsStream) { XmlBinaryWriter writer = new XmlBinaryWriter(); writer.SetOutput(stream, dictionary, session, ownsStream); return writer; } static public XmlDictionaryWriter CreateTextWriter(Stream stream) { return CreateTextWriter(stream, Encoding.UTF8, true); } static public XmlDictionaryWriter CreateTextWriter(Stream stream, Encoding encoding) { return CreateTextWriter(stream, encoding, true); } static public XmlDictionaryWriter CreateTextWriter(Stream stream, Encoding encoding, bool ownsStream) { XmlUTF8TextWriter writer = new XmlUTF8TextWriter(); writer.SetOutput(stream, encoding, ownsStream); return writer; } static public XmlDictionaryWriter CreateMtomWriter(Stream stream, Encoding encoding, int maxSizeInBytes, string startInfo) { return CreateMtomWriter(stream, encoding, maxSizeInBytes, startInfo, null, null, true, true); } static public XmlDictionaryWriter CreateMtomWriter(Stream stream, Encoding encoding, int maxSizeInBytes, string startInfo, string boundary, string startUri, bool writeMessageHeaders, bool ownsStream) { XmlMtomWriter writer = new XmlMtomWriter(); writer.SetOutput(stream, encoding, maxSizeInBytes, startInfo, boundary, startUri, writeMessageHeaders, ownsStream); return writer; } static public XmlDictionaryWriter CreateDictionaryWriter(XmlWriter writer) { if (writer == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("writer"); XmlDictionaryWriter dictionaryWriter = writer as XmlDictionaryWriter; if (dictionaryWriter == null) { dictionaryWriter = new XmlWrappedWriter(writer); } return dictionaryWriter; } public void WriteStartElement(XmlDictionaryString localName, XmlDictionaryString namespaceUri) { WriteStartElement((string)null, localName, namespaceUri); } public virtual void WriteStartElement(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri) { WriteStartElement(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri)); } public void WriteStartAttribute(XmlDictionaryString localName, XmlDictionaryString namespaceUri) { WriteStartAttribute((string)null, localName, namespaceUri); } public virtual void WriteStartAttribute(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri) { WriteStartAttribute(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri)); } public void WriteAttributeString(XmlDictionaryString localName, XmlDictionaryString namespaceUri, string value) { WriteAttributeString((string)null, localName, namespaceUri, value); } public virtual void WriteXmlnsAttribute(string prefix, string namespaceUri) { if (namespaceUri == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("namespaceUri"); if (prefix == null) { if (LookupPrefix(namespaceUri) != null) return; #pragma warning suppress 56506 // [....], namespaceUri is already checked prefix = namespaceUri.Length == 0 ? string.Empty : string.Concat("d", namespaceUri.Length.ToString(System.Globalization.NumberFormatInfo.InvariantInfo)); } WriteAttributeString("xmlns", prefix, null, namespaceUri); } public virtual void WriteXmlnsAttribute(string prefix, XmlDictionaryString namespaceUri) { WriteXmlnsAttribute(prefix, XmlDictionaryString.GetString(namespaceUri)); } public virtual void WriteXmlAttribute(string localName, string value) { WriteAttributeString("xml", localName, null, value); } public virtual void WriteXmlAttribute(XmlDictionaryString localName, XmlDictionaryString value) { WriteXmlAttribute(XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(value)); } public void WriteAttributeString(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, string value) { WriteStartAttribute(prefix, localName, namespaceUri); WriteString(value); WriteEndAttribute(); } public void WriteElementString(XmlDictionaryString localName, XmlDictionaryString namespaceUri, string value) { WriteElementString((string)null, localName, namespaceUri, value); } public void WriteElementString(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, string value) { WriteStartElement(prefix, localName, namespaceUri); WriteString(value); WriteEndElement(); } public virtual void WriteString(XmlDictionaryString value) { WriteString(XmlDictionaryString.GetString(value)); } public virtual void WriteQualifiedName(XmlDictionaryString localName, XmlDictionaryString namespaceUri) { if (localName == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("localName")); if (namespaceUri == null) namespaceUri = XmlDictionaryString.Empty; #pragma warning suppress 56506 // [....], XmlDictionaryString.Empty is never null WriteQualifiedName(localName.Value, namespaceUri.Value); } public virtual void WriteValue(XmlDictionaryString value) { WriteValue(XmlDictionaryString.GetString(value)); } public virtual void WriteValue(IStreamProvider value) { if (value == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("value")); Stream stream = value.GetStream(); if (stream == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new XmlException(SR.GetString(SR.XmlInvalidStream))); int blockSize = 256; int bytesRead = 0; byte[] block = new byte[blockSize]; while (true) { bytesRead = stream.Read(block, 0, blockSize); if (bytesRead > 0) WriteBase64(block, 0, bytesRead); else break; if (blockSize < 65536 && bytesRead == blockSize) { blockSize = blockSize * 16; block = new byte[blockSize]; } } value.ReleaseStream(stream); } public virtual void WriteValue(UniqueId value) { if (value == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value"); WriteString(value.ToString()); } public virtual void WriteValue(Guid value) { WriteString(value.ToString()); } public virtual void WriteValue(TimeSpan value) { WriteString(XmlConvert.ToString(value)); } public virtual bool CanCanonicalize { get { return false; } } public virtual void StartCanonicalization(Stream stream, bool includeComments, string[] inclusivePrefixes) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } public virtual void EndCanonicalization() { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } void WriteElementNode(XmlDictionaryReader reader, bool defattr) { XmlDictionaryString localName; XmlDictionaryString namespaceUri; if (reader.TryGetLocalNameAsDictionaryString(out localName) && reader.TryGetNamespaceUriAsDictionaryString(out namespaceUri)) { WriteStartElement(reader.Prefix, localName, namespaceUri); } else { WriteStartElement(reader.Prefix, reader.LocalName, reader.NamespaceURI); } if (defattr || (!reader.IsDefault && (reader.SchemaInfo == null || !reader.SchemaInfo.IsDefault))) { if (reader.MoveToFirstAttribute()) { do { if (reader.TryGetLocalNameAsDictionaryString(out localName) && reader.TryGetNamespaceUriAsDictionaryString(out namespaceUri)) { WriteStartAttribute(reader.Prefix, localName, namespaceUri); } else { WriteStartAttribute(reader.Prefix, reader.LocalName, reader.NamespaceURI); } while (reader.ReadAttributeValue()) { if (reader.NodeType == XmlNodeType.EntityReference) { WriteEntityRef(reader.Name); } else { WriteTextNode(reader, true); } } WriteEndAttribute(); } while (reader.MoveToNextAttribute()); reader.MoveToElement(); } } if (reader.IsEmptyElement) { WriteEndElement(); } } void WriteArrayNode(XmlDictionaryReader reader, string prefix, string localName, string namespaceUri, Type type) { if (type == typeof(bool)) BooleanArrayHelperWithString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(Int16)) Int16ArrayHelperWithString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(Int32)) Int32ArrayHelperWithString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(Int64)) Int64ArrayHelperWithString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(float)) SingleArrayHelperWithString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(double)) DoubleArrayHelperWithString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(decimal)) DecimalArrayHelperWithString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(DateTime)) DateTimeArrayHelperWithString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(Guid)) GuidArrayHelperWithString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(TimeSpan)) TimeSpanArrayHelperWithString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else { WriteElementNode(reader, false); reader.Read(); } } void WriteArrayNode(XmlDictionaryReader reader, string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, Type type) { if (type == typeof(bool)) BooleanArrayHelperWithDictionaryString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(Int16)) Int16ArrayHelperWithDictionaryString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(Int32)) Int32ArrayHelperWithDictionaryString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(Int64)) Int64ArrayHelperWithDictionaryString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(float)) SingleArrayHelperWithDictionaryString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(double)) DoubleArrayHelperWithDictionaryString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(decimal)) DecimalArrayHelperWithDictionaryString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(DateTime)) DateTimeArrayHelperWithDictionaryString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(Guid)) GuidArrayHelperWithDictionaryString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else if (type == typeof(TimeSpan)) TimeSpanArrayHelperWithDictionaryString.Instance.WriteArray(this, prefix, localName, namespaceUri, reader); else { WriteElementNode(reader, false); reader.Read(); } } void WriteArrayNode(XmlDictionaryReader reader, Type type) { XmlDictionaryString localName; XmlDictionaryString namespaceUri; if (reader.TryGetLocalNameAsDictionaryString(out localName) && reader.TryGetNamespaceUriAsDictionaryString(out namespaceUri)) WriteArrayNode(reader, reader.Prefix, localName, namespaceUri, type); else WriteArrayNode(reader, reader.Prefix, reader.LocalName, reader.NamespaceURI, type); } protected virtual void WriteTextNode(XmlDictionaryReader reader, bool isAttribute) { XmlDictionaryString value; if (reader.TryGetValueAsDictionaryString(out value)) { WriteString(value); } else { WriteString(reader.Value); } if (!isAttribute) { reader.Read(); } } public override void WriteNode(XmlReader reader, bool defattr) { XmlDictionaryReader dictionaryReader = reader as XmlDictionaryReader; if (dictionaryReader != null) WriteNode(dictionaryReader, defattr); else base.WriteNode(reader, defattr); } public virtual void WriteNode(XmlDictionaryReader reader, bool defattr) { if (reader == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("reader")); int d = (reader.NodeType == XmlNodeType.None ? -1 : reader.Depth); do { XmlNodeType nodeType = reader.NodeType; Type type; if (nodeType == XmlNodeType.Text || nodeType == XmlNodeType.Whitespace || nodeType == XmlNodeType.SignificantWhitespace) { // This will advance if necessary, so we don't need to call Read() explicitly WriteTextNode(reader, false); } else if (reader.Depth > d && reader.IsStartArray(out type)) { WriteArrayNode(reader, type); } else { // These will not advance, so we must call Read() explicitly switch (nodeType) { case XmlNodeType.Element: WriteElementNode(reader, defattr); break; case XmlNodeType.CDATA: WriteCData(reader.Value); break; case XmlNodeType.EntityReference: WriteEntityRef(reader.Name); break; case XmlNodeType.XmlDeclaration: case XmlNodeType.ProcessingInstruction: WriteProcessingInstruction(reader.Name, reader.Value); break; case XmlNodeType.DocumentType: WriteDocType(reader.Name, reader.GetAttribute("PUBLIC"), reader.GetAttribute("SYSTEM"), reader.Value); break; case XmlNodeType.Comment: WriteComment(reader.Value); break; case XmlNodeType.EndElement: WriteFullEndElement(); break; } if (!reader.Read()) break; } } while (d < reader.Depth || (d == reader.Depth && reader.NodeType == XmlNodeType.EndElement)); } void CheckArray(Array array, int offset, int count) { if (array == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("array")); if (offset < 0) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("offset", SR.GetString(SR.ValueMustBeNonNegative))); if (offset > array.Length) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("offset", SR.GetString(SR.OffsetExceedsBufferSize, array.Length))); if (count < 0) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("count", SR.GetString(SR.ValueMustBeNonNegative))); if (count > array.Length - offset) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("count", SR.GetString(SR.SizeExceedsRemainingBufferSpace, array.Length - offset))); } // bool public virtual void WriteArray(string prefix, string localName, string namespaceUri, bool[] array, int offset, int count) { CheckArray(array, offset, count); for (int i = 0; i < count; i++) { WriteStartElement(prefix, localName, namespaceUri); WriteValue(array[offset + i]); WriteEndElement(); } } public virtual void WriteArray(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, bool[] array, int offset, int count) { WriteArray(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri), array, offset, count); } // Int16 public virtual void WriteArray(string prefix, string localName, string namespaceUri, Int16[] array, int offset, int count) { CheckArray(array, offset, count); for (int i = 0; i < count; i++) { WriteStartElement(prefix, localName, namespaceUri); WriteValue(array[offset + i]); WriteEndElement(); } } public virtual void WriteArray(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, Int16[] array, int offset, int count) { WriteArray(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri), array, offset, count); } // Int32 public virtual void WriteArray(string prefix, string localName, string namespaceUri, Int32[] array, int offset, int count) { CheckArray(array, offset, count); for (int i = 0; i < count; i++) { WriteStartElement(prefix, localName, namespaceUri); WriteValue(array[offset + i]); WriteEndElement(); } } public virtual void WriteArray(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, Int32[] array, int offset, int count) { WriteArray(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri), array, offset, count); } // Int64 public virtual void WriteArray(string prefix, string localName, string namespaceUri, Int64[] array, int offset, int count) { CheckArray(array, offset, count); for (int i = 0; i < count; i++) { WriteStartElement(prefix, localName, namespaceUri); WriteValue(array[offset + i]); WriteEndElement(); } } public virtual void WriteArray(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, Int64[] array, int offset, int count) { WriteArray(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri), array, offset, count); } // float public virtual void WriteArray(string prefix, string localName, string namespaceUri, float[] array, int offset, int count) { CheckArray(array, offset, count); for (int i = 0; i < count; i++) { WriteStartElement(prefix, localName, namespaceUri); WriteValue(array[offset + i]); WriteEndElement(); } } public virtual void WriteArray(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, float[] array, int offset, int count) { WriteArray(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri), array, offset, count); } // double public virtual void WriteArray(string prefix, string localName, string namespaceUri, double[] array, int offset, int count) { CheckArray(array, offset, count); for (int i = 0; i < count; i++) { WriteStartElement(prefix, localName, namespaceUri); WriteValue(array[offset + i]); WriteEndElement(); } } public virtual void WriteArray(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, double[] array, int offset, int count) { WriteArray(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri), array, offset, count); } // decimal public virtual void WriteArray(string prefix, string localName, string namespaceUri, decimal[] array, int offset, int count) { CheckArray(array, offset, count); for (int i = 0; i < count; i++) { WriteStartElement(prefix, localName, namespaceUri); WriteValue(array[offset + i]); WriteEndElement(); } } public virtual void WriteArray(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, decimal[] array, int offset, int count) { WriteArray(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri), array, offset, count); } // DateTime public virtual void WriteArray(string prefix, string localName, string namespaceUri, DateTime[] array, int offset, int count) { CheckArray(array, offset, count); for (int i = 0; i < count; i++) { WriteStartElement(prefix, localName, namespaceUri); WriteValue(array[offset + i]); WriteEndElement(); } } public virtual void WriteArray(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, DateTime[] array, int offset, int count) { WriteArray(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri), array, offset, count); } // Guid public virtual void WriteArray(string prefix, string localName, string namespaceUri, Guid[] array, int offset, int count) { CheckArray(array, offset, count); for (int i = 0; i < count; i++) { WriteStartElement(prefix, localName, namespaceUri); WriteValue(array[offset + i]); WriteEndElement(); } } public virtual void WriteArray(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, Guid[] array, int offset, int count) { WriteArray(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri), array, offset, count); } // TimeSpan public virtual void WriteArray(string prefix, string localName, string namespaceUri, TimeSpan[] array, int offset, int count) { CheckArray(array, offset, count); for (int i = 0; i < count; i++) { WriteStartElement(prefix, localName, namespaceUri); WriteValue(array[offset + i]); WriteEndElement(); } } public virtual void WriteArray(string prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri, TimeSpan[] array, int offset, int count) { WriteArray(prefix, XmlDictionaryString.GetString(localName), XmlDictionaryString.GetString(namespaceUri), array, offset, count); } class XmlWrappedWriter : XmlDictionaryWriter { XmlWriter writer; int depth; int prefix; public XmlWrappedWriter(XmlWriter writer) { this.writer = writer; this.depth = 0; } public override void Close() { writer.Close(); } public override void Flush() { writer.Flush(); } public override string LookupPrefix(string namespaceUri) { return writer.LookupPrefix(namespaceUri); } public override void WriteAttributes(XmlReader reader, bool defattr) { writer.WriteAttributes(reader, defattr); } public override void WriteBase64(byte[] buffer, int index, int count) { writer.WriteBase64(buffer, index, count); } public override void WriteBinHex(byte[] buffer, int index, int count) { writer.WriteBinHex(buffer, index, count); } public override void WriteCData(string text) { writer.WriteCData(text); } public override void WriteCharEntity(char ch) { writer.WriteCharEntity(ch); } public override void WriteChars(char[] buffer, int index, int count) { writer.WriteChars(buffer, index, count); } public override void WriteComment(string text) { writer.WriteComment(text); } public override void WriteDocType(string name, string pubid, string sysid, string subset) { writer.WriteDocType(name, pubid, sysid, subset); } public override void WriteEndAttribute() { writer.WriteEndAttribute(); } public override void WriteEndDocument() { writer.WriteEndDocument(); } public override void WriteEndElement() { writer.WriteEndElement(); this.depth--; } public override void WriteEntityRef(string name) { writer.WriteEntityRef(name); } public override void WriteFullEndElement() { writer.WriteFullEndElement(); } public override void WriteName(string name) { writer.WriteName(name); } public override void WriteNmToken(string name) { writer.WriteNmToken(name); } public override void WriteNode(XmlReader reader, bool defattr) { writer.WriteNode(reader, defattr); } public override void WriteProcessingInstruction(string name, string text) { writer.WriteProcessingInstruction(name, text); } public override void WriteQualifiedName(string localName, string namespaceUri) { writer.WriteQualifiedName(localName, namespaceUri); } public override void WriteRaw(char[] buffer, int index, int count) { writer.WriteRaw(buffer, index, count); } public override void WriteRaw(string data) { writer.WriteRaw(data); } public override void WriteStartAttribute(string prefix, string localName, string namespaceUri) { writer.WriteStartAttribute(prefix, localName, namespaceUri); this.prefix++; } public override void WriteStartDocument() { writer.WriteStartDocument(); } public override void WriteStartDocument(bool standalone) { writer.WriteStartDocument(standalone); } public override void WriteStartElement(string prefix, string localName, string namespaceUri) { writer.WriteStartElement(prefix, localName, namespaceUri); this.depth++; this.prefix = 1; } public override WriteState WriteState { get { return writer.WriteState; } } public override void WriteString(string text) { writer.WriteString(text); } public override void WriteSurrogateCharEntity(char lowChar, char highChar) { writer.WriteSurrogateCharEntity(lowChar, highChar); } public override void WriteWhitespace(string whitespace) { writer.WriteWhitespace(whitespace); } public override void WriteValue(object value) { writer.WriteValue(value); } public override void WriteValue(string value) { writer.WriteValue(value); } public override void WriteValue(bool value) { writer.WriteValue(value); } public override void WriteValue(DateTime value) { writer.WriteValue(value); } public override void WriteValue(double value) { writer.WriteValue(value); } public override void WriteValue(int value) { writer.WriteValue(value); } public override void WriteValue(long value) { writer.WriteValue(value); } #if DECIMAL_FLOAT_API public override void WriteValue(decimal value) { writer.WriteValue(value); } public override void WriteValue(float value) { writer.WriteValue(value); } #endif public override void WriteXmlnsAttribute(string prefix, string namespaceUri) { if (namespaceUri == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("namespaceUri"); if (prefix == null) { if (LookupPrefix(namespaceUri) != null) return; if (namespaceUri.Length == 0) { prefix = string.Empty; } else { string depthStr = this.depth.ToString(System.Globalization.NumberFormatInfo.InvariantInfo); string prefixStr = this.prefix.ToString(System.Globalization.NumberFormatInfo.InvariantInfo); prefix = string.Concat("d", depthStr, "p", prefixStr); } } WriteAttributeString("xmlns", prefix, null, namespaceUri); } public override string XmlLang { get { return writer.XmlLang; } } public override XmlSpace XmlSpace { get { return writer.XmlSpace; } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AdRotator.cs
- Image.cs
- XamlStackWriter.cs
- SortFieldComparer.cs
- BroadcastEventHelper.cs
- ZoomingMessageFilter.cs
- SqlDataSourceQueryEditorForm.cs
- __ComObject.cs
- ResourceExpressionBuilder.cs
- ExceptionRoutedEventArgs.cs
- Repeater.cs
- Pair.cs
- Matrix.cs
- SharedDp.cs
- NoPersistHandle.cs
- ToolStripPanel.cs
- DataGridViewBindingCompleteEventArgs.cs
- EventLogPermissionAttribute.cs
- IsolatedStorageFilePermission.cs
- thaishape.cs
- ResourceDefaultValueAttribute.cs
- XPathPatternParser.cs
- TypedCompletedAsyncResult.cs
- securitycriticaldataClass.cs
- FunctionQuery.cs
- Metafile.cs
- DetailsViewCommandEventArgs.cs
- XmlNodeChangedEventManager.cs
- ElementNotEnabledException.cs
- OutputCache.cs
- BatchWriter.cs
- TextTreeTextBlock.cs
- BulletDecorator.cs
- DesignParameter.cs
- HttpWebRequest.cs
- precedingquery.cs
- WebPartVerb.cs
- Label.cs
- Int32KeyFrameCollection.cs
- DataGridViewSelectedCellCollection.cs
- LinkDescriptor.cs
- FileLogRecordHeader.cs
- PersonalizationAdministration.cs
- LinkDescriptor.cs
- ListSortDescriptionCollection.cs
- WebPartEditorApplyVerb.cs
- NumberFormatInfo.cs
- StrokeNodeOperations2.cs
- FontFaceLayoutInfo.cs
- BuildProvider.cs
- PreviewPageInfo.cs
- CompilerParameters.cs
- DynamicPropertyHolder.cs
- SemanticKeyElement.cs
- KnownBoxes.cs
- ExplicitDiscriminatorMap.cs
- DrawingAttributesDefaultValueFactory.cs
- Vector3D.cs
- SlipBehavior.cs
- XmlReturnWriter.cs
- DataGridTablesFactory.cs
- SHA512Managed.cs
- SmtpCommands.cs
- SchemaReference.cs
- InProcStateClientManager.cs
- QilGeneratorEnv.cs
- IPEndPoint.cs
- SingleAnimationBase.cs
- XmlNodeComparer.cs
- ToolStripManager.cs
- ServiceOperation.cs
- CornerRadiusConverter.cs
- ByteBufferPool.cs
- CultureMapper.cs
- ListViewInsertEventArgs.cs
- uribuilder.cs
- DbRetry.cs
- HwndProxyElementProvider.cs
- MultiBindingExpression.cs
- ToolStripMenuItem.cs
- JsonCollectionDataContract.cs
- ReadOnlyDataSourceView.cs
- HwndHost.cs
- TcpChannelFactory.cs
- ThemeDictionaryExtension.cs
- FontStretches.cs
- TreeNodeMouseHoverEvent.cs
- OutputScopeManager.cs
- BasicBrowserDialog.designer.cs
- ReferenceEqualityComparer.cs
- EncoderExceptionFallback.cs
- oledbconnectionstring.cs
- PartialTrustVisibleAssembly.cs
- DecimalAnimationBase.cs
- PartialArray.cs
- sqlinternaltransaction.cs
- DotAtomReader.cs
- CellTreeNodeVisitors.cs
- MetadataSerializer.cs
- UpdateExpressionVisitor.cs