XamlXmlWriter Класс

Определение

TextWriter Использует класс поддержки XmlWriter для записи потока узла XAML в текст или сериализованную форму разметки.

public ref class XamlXmlWriter : System::Xaml::XamlWriter
public class XamlXmlWriter : System.Xaml.XamlWriter
type XamlXmlWriter = class
    inherit XamlWriter
Public Class XamlXmlWriter
Inherits XamlWriter
Наследование
XamlXmlWriter

Комментарии

Этот класс обычно используется в сценариях сериализации.

Использование XamlXmlWriter

API XamlWriter имеет несколько методов, которые записывают различные типы узлов XAML. В совокупности эти методы называются в XamlWriterдокументацииWrite. XamlXmlWriter использует несколько внутренних классов состояний, чтобы определить, что делать при вызове одной из его Write реализаций. Вызов Write использует состояния, чтобы определить, можно ли записать запрошенный элемент, атрибут или значение, или создать исключение. Например, при вызове WriteEndObject и состоянии текущего XamlXmlWriter положения узла возникает исключение. Как правило, вызывающие XamlXmlWriter API должны учитывать тип текущего узла XAML, исходящего из средства чтения XAML и потока узлов XAML. На основе этих знаний вызывающие элементы должны избегать вызовов Write API, которые не относятся к текущему типу узла.

Пространства имен XAML и XamlXmlWriter

Поведение XamlXmlWriter записи пространства имен XAML является сложным и не ограничивается явными вызовами WriteNamespace. Вместо этого другие Write вызовы, например WriteStartObject, могут потребовать, чтобы объявление пространства имен записывали в определенных точках в структуре узла. Модуль записи XAML либо создает префикс по собственной логике, либо использует сведения из INamespacePrefixLookup службы для определения предпочтительного префикса. Кроме того, явные WriteNamespace вызовы могут отложить или ничего не возвращать, если объявление пространства имен XAML уже применимо и объявлено в другом месте.

Исключения методов записи

Исключения, создаваемые XamlXmlWriterWrite методами, InvalidOperationException обычно являются либо XamlXmlWriterException.

Часто InvalidOperationException указывает, что средство чтения XAML передало недопустимую структуру узлов в поток узлов XAML. В этом случае структура узла является недопустимой по причинам, которые не связаны с проверкой схемы XAML или контекстом схемы XAML. Скорее, поток узлов недопустим в базовой форме. Например, если неисправная реализация средства чтения XAML создала поток узлов XAML, содержащий два последовательных StartObject узла, попытка вызвать второй WriteStartObject вызов вызовет ошибку InvalidOperationException. Все записи XAML считают, что такая операция является недопустимой. Еще одним примером InvalidOperationException является то, что сведения о пространстве имен XAML недоступны через контекст схемы XAML, который применяется к текущей позиции потока узлов.

Указывает XamlXmlWriterException исключение, в котором эта конкретная реализация модуля записи XAML выбирает исключение на основе его предполагаемой функциональности. Может XamlXmlWriterException указывать конкретные случаи XamlXmlWriter нарушения собственного состояния или параметров. Например, XamlXmlWriterException может привести к попыткам записи сведений о пространстве имен XAML в положение, которое XamlXmlWriter не поддерживается и его формат сериализации, или запись повторяющихся элементов при запрете экземпляра XamlXmlWriterSettings .

Конструкторы

Имя Описание
XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

Инициализирует новый экземпляр XamlXmlWriter класса из потока с помощью объекта параметров записи.

XamlXmlWriter(Stream, XamlSchemaContext)

Инициализирует новый экземпляр XamlXmlWriter класса из потока.

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

Инициализирует новый экземпляр XamlXmlWriter класса из TextWriter основы с помощью объекта settings.

XamlXmlWriter(TextWriter, XamlSchemaContext)

Инициализирует новый экземпляр XamlXmlWriter класса на TextWriter основе.

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

Инициализирует новый экземпляр XamlXmlWriter класса из XmlWriter основы с помощью объекта settings.

XamlXmlWriter(XmlWriter, XamlSchemaContext)

Инициализирует новый экземпляр XamlXmlWriter класса на XmlWriter основе.

Свойства

Имя Описание
IsDisposed

Возвращает, вызывается ли Dispose(Boolean).

(Унаследовано от XamlWriter)
SchemaContext

Возвращает контекст схемы XAML, который используется XamlXmlWriter для обработки.

Settings

Возвращает параметры записи, которые используются XamlXmlWriter для обработки XAML.

Методы

Имя Описание
Close()

Закрывает объект записи XAML.

(Унаследовано от XamlWriter)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые XamlXmlWriter и при необходимости освобождает управляемые ресурсы.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Flush()

Flush Вызывает метод базового XmlWriter или TextWriter, который записывает все, что находится в буфере, а затем закрывает модуль записи.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
WriteEndMember()

Записывает конечный узел XAML в базовый XmlWriter или TextWriter. Создает исключение, если текущая позиция потока узлов XAML не находится в элементе или если внутреннее состояние записи не поддерживает запись в конечный элемент.

WriteEndObject()

Записывает узел конечного объекта XAML в базовый XmlWriter или TextWriter. Создает исключение, если текущая позиция потока узлов XAML, обрабатываемого, несовместима с записью конечного объекта.

WriteGetObject()

Записывает объект в случаях, когда указанный объект является значением по умолчанию или неявным свойством, которое записывается, вместо того, чтобы указывать в качестве значения объекта в входном наборе узлов XAML.

WriteNamespace(NamespaceDeclaration)

Записывает сведения о пространстве имен в базовый XmlWriter или TextWriter. Может вызвать исключение для определенных состояний; однако вместо этого может отложить запись сведений о пространстве имен до тех пор, пока модуль записи и поток узла XAML, обрабатываемый, достигнет позиции, в которой можно вставить объявление пространства имен XAML.

WriteNode(XamlReader)

Выполняет переключение на основе типа узла из средства чтения XAML (NodeType) и вызывает соответствующий Write метод для реализации записи.

(Унаследовано от XamlWriter)
WriteStartMember(XamlMember)

Записывает начальный узел XAML-члена в базовый XmlWriter или TextWriter. Создает исключение, если текущая позиция потока узла XAML находится в другом элементе или не находится в области или состоянии записи, где можно записать начальный элемент.

WriteStartObject(XamlType)

Записывает узел начального объекта XAML в базовый XmlWriter или TextWriter. Создает исключение, если текущая позиция потока узла XAML не находится в области, в которой может быть записан начальный объект, или если модуль записи не находится в состоянии, которое может записывать начальный объект.

WriteValue(Object)

Записывает узел значения XAML в базовый XmlWriter или TextWriter. Создает исключение, если текущая позиция потока узлов XAML является недопустимой для записи значения, или модуль записи находится в состоянии, где невозможно записать значение.

Явные реализации интерфейса

Имя Описание
IDisposable.Dispose()

См. Dispose().

(Унаследовано от XamlWriter)

Применяется к

См. также раздел