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 позиции узла находится на значении или в элементе, создается исключение. Как правило, вызывающие 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)

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

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

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

XamlXmlWriter(TextWriter, XamlSchemaContext)

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

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

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

XamlXmlWriter(XmlWriter, XamlSchemaContext)

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

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

Инициализирует новый экземпляр класса 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)

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

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