Поделиться через


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

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

Пространство имен XAML, записывающее XamlXmlWriter, является сложным и не ограничивается явными вызовами 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)

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

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

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

XamlXmlWriter(TextWriter, XamlSchemaContext)

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

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

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

XamlXmlWriter(XmlWriter, XamlSchemaContext)

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

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

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

Свойства

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)

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

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