System.Xml.XmlDictionaryWriter
Provides a fast, non-cached way to write XML data. This abstract class serves as the base for creating custom XML writers that use an XML dictionary for element and attribute names.
Syntax
public abstract class XmlDictionaryWriter : XmlWriter
Properties
Name | Type | Description |
---|---|---|
Dictionary | XmlDictionary | Gets the XML dictionary associated with this writer. |
Methods
WriteStartElement(XmlDictionaryString prefix, XmlDictionaryString localName, XmlDictionaryString ns)
Writes the start tag of an element using dictionary strings for the prefix, local name and namespace.
public abstract void WriteStartElement(
XmlDictionaryString prefix,
XmlDictionaryString localName,
XmlDictionaryString ns);
WriteString(XmlDictionaryString value)
Writes a text node containing the value from the dictionary.
public abstract void WriteString(XmlDictionaryString value);
WriteStartAttribute(XmlDictionaryString prefix, XmlDictionaryString localName, XmlDictionaryString ns)
public abstract void WriteStartAttribute(
XmlDictionaryString prefix,
XmlDictionaryString localName,
XmlDictionaryString ns);
WriteEndElement()
public override void WriteEndElement();
WriteEndAttribute()
public override void WriteEndAttribute();
CreateBinaryWriter(Stream output)
Creates a binary XML writer that writes to the specified stream.
public static XmlDictionaryWriter CreateBinaryWriter(Stream output);
Example
This example demonstrates how to write a simple XML document using XmlDictionaryWriter
with a binary writer.
using System;
using System.IO;
using System.Xml;
using System.Xml;
class Program
{
static void Main()
{
XmlDictionary dict = new XmlDictionary();
XmlDictionaryString elem = dict.Add("Message");
XmlDictionaryString attr = dict.Add("type");
XmlDictionaryString value = dict.Add("Hello, World!");
using (MemoryStream ms = new MemoryStream())
{
using (XmlDictionaryWriter writer = XmlDictionaryWriter.CreateBinaryWriter(ms))
{
writer.WriteStartElement(elem);
writer.WriteStartAttribute(attr);
writer.WriteString(dict.Add("greeting"));
writer.WriteEndAttribute();
writer.WriteString(value);
writer.WriteEndElement();
writer.Flush();
}
// Reset stream and read back the binary XML
ms.Position = 0;
using (XmlDictionaryReader reader = XmlDictionaryReader.CreateBinaryReader(ms, XmlDictionaryReaderQuotas.Max))
{
while (reader.Read())
{
Console.WriteLine($"{reader.NodeType}: {reader.Name} - {reader.Value}");
}
}
}
}
}