XamlObjectWriter Класс

Определение

Создает граф объектов из исходного потока узлов XAML.

public ref class XamlObjectWriter : System::Xaml::XamlWriter, System::Xaml::IXamlLineInfoConsumer
public class XamlObjectWriter : System.Xaml.XamlWriter, System.Xaml.IXamlLineInfoConsumer
type XamlObjectWriter = class
    inherit XamlWriter
    interface IXamlLineInfoConsumer
Public Class XamlObjectWriter
Inherits XamlWriter
Implements IXamlLineInfoConsumer
Наследование
XamlObjectWriter
Реализации

Комментарии

Write Методы XamlObjectWriter реализации шаблона, позволяющие XamlObjectWriter использовать объектXamlWriter, определенный методомWriteNode. WriteNode логика переключается между методами Write в зависимости от типа узла в текущей позиции средства чтения.

Область

A XamlObjectWriter имеет концепцию области; то есть XamlObjectWriter поддерживает концептуальную точку ссылки в графе выходного объекта. Для определенной области некоторые операции могут быть допустимыми или недопустимыми, или выдавать результат без операции. Например, при вызове WriteStartMember директив записи для инициализации объекта, уже существующего в качестве экземпляра, реализация по умолчанию создает исключение.

Возможный способ отслеживания области в пользовательском XamlObjectWriter — выравнивание действий узла с классом стека или кадра. Стек или кадр могут отслеживать отправку и всплывающее окно для каждого уровня глубины объектной модели, введенной или выходя из нее во время XamlObjectWriter записи графа объектов.

Обратные вызовы

Для поддержки промежуточных и расширенных XamlObjectWriter сценариев механизм записи графа объектов предоставляет точки входа обратного вызова, возникающие при XamlObjectWriter фиксации или фиксации определенных действий. Некоторые обратные вызовы включены в параметрах и не относятся к типу объекта или записанному члену; однако сведения о обратном вызове часто доступны в контексте или содержатся в данных события, отправляемых через обратный вызов. Ниже приведен список соответствующих обратных вызовов.

  • Обратный вызов, объявленный методом AfterBeginInitHandler , вызывается, когда область переходит к новому объекту и на BeginInit этапе времени существования объекта для каждого созданного объекта.

  • Обратный вызов, объявленный методом AfterEndInitHandler , вызывается, когда область переходит к новому объекту и на EndInit этапе времени существования объекта для каждого созданного объекта.

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

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

  • Обратный вызов, объявленный XamlSetValueHandler при OnSetValue вызове.

Написание ключей словаря

Реализация XamlObjectWriter по умолчанию поддерживает преобразование типов для ограничений, Dictionary<TKey,TValue> предшествующих добавлению содержимого словаря в граф объектов. Таким образом, универсальный словарь может быть ключом во время выполнения объектами и может соответствовать соответствующему поведению универсального Add и индексатора. Однако, как реализовано для базы XamlObjectWriter, эта возможность существует только для создания графа объектов из базового Dictionary<TKey,TValue> класса, а не для производных Dictionary<TKey,TValue>классов .

Проверка удаления

Записи XAML потенциально используются для отложенных операций или при вызове экземпляра модуля записи XAML, который был удален в промежуточный период. В таких случаях XamlObjectWriter могут создаваться ObjectDisposedException различные API.

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

XamlObjectWriter(XamlSchemaContext)

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

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

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

Свойства

IsDisposed

Получает сведения о том, вызывался ли метод Dispose(Boolean).

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

Получает последний записанный объект. Вызывается, только когда поток узла достиг конца и граф объекта завершен.

RootNameScope

Получает службу INameScope, которая поддерживает область имен XAML для абсолютного корня узла средства записи объекта XAML.

SchemaContext

Получает активный контекст схемы XAML.

ShouldProvideLineInfo

Получает значение, которое сообщает, должна ли служба сведений о строке предоставлять значения и, следовательно, вызывать метод SetLineInfo(Int32, Int32), когда это требуется.

Методы

Clear()

Сбрасывает все возможные кадры и очищает граф объектов.

Close()

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

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

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

Equals(Object)

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

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

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

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

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

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

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

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

Вызывает любой метод AfterBeginInitHandler, связанный с объектом XamlObjectWriterSettings, для данного объекта XamlObjectWriter.

OnAfterEndInit(Object)

Вызывает любой метод AfterEndInitHandler, связанный с объектом XamlObjectWriterSettings, для данного объекта XamlObjectWriter.

OnAfterProperties(Object)

Вызывает любой метод AfterPropertiesHandler, на который имеется ссылка и который связан с XamlObjectWriterSettings, для данного объекта XamlObjectWriter.

OnBeforeProperties(Object)

Вызывает любой метод BeforePropertiesHandler, на который имеется ссылка и который связан с XamlObjectWriterSettings, для данного объекта XamlObjectWriter.

OnSetValue(Object, XamlMember, Object)

Вызывает любой метод XamlSetValueHandler, на который имеется ссылка и который связан с XamlObjectWriterSettings, для этого средства записи при условии, что параметр handled в данных события XamlSetValueEventArgs имеет значение, отличное от true.

SetLineInfo(Int32, Int32)

Реализует метод SetLineInfo(Int32, Int32) и предоставляет сведения о строке для исключений.

ToString()

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

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

Закрывает область текущего члена и может при закрытии записать значение области члена. Новая область становится областью родительского объекта этого члена.

WriteEndObject()

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

WriteGetObject()

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

WriteNamespace(NamespaceDeclaration)

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

WriteNode(XamlReader)

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

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

Записывает новый узел члена в текущую область объекта, и эта область становится новой областью члена.

WriteStartObject(XamlType)

Записывает узел объекта в текущую область, и задает эту область для области нового объекта.

WriteValue(Object)

Выполняет запись значения в область текущего члена. Если текущая область находится в объекте коллекции, словаря или массива, это значение необходимо добавить в коллекцию, словарь или массив.

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

IDisposable.Dispose()

См. раздел Dispose().

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

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

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