XamlObjectWriter XamlObjectWriter XamlObjectWriter XamlObjectWriter Class

Определение

Создает граф объектов из исходного потока узлов XAML.Creates an object graph from a source XAML node stream.

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
Наследование
XamlObjectWriterXamlObjectWriterXamlObjectWriterXamlObjectWriter
Реализации

Комментарии

Write WriteNode Методы реализуют шаблон, который XamlObjectWriter использует объект XamlWriter , определенный методом. XamlObjectWriterThe Write methods of XamlObjectWriter implement a pattern so that the XamlObjectWriter uses the XamlWriter that is defined by the WriteNode method. WriteNodeлогические переключения между Write методами в зависимости от того, какой тип узла находится в текущей позиции в модуле чтения.WriteNode logic switches between the Write methods, depending on which node type is at the current position in the reader.

ОбластьScope

Объект XamlObjectWriter имеет концепцию области, то есть XamlObjectWriter поддерживает концептуальную точку ссылки в графе объекта вывода.A XamlObjectWriter has a concept of scope; that is, the XamlObjectWriter maintains a conceptual point of reference in its output object graph. Для определенной области некоторые операции могут быть допустимыми или недопустимыми или выдавать результат без операции.For a particular scope, certain operations might be valid or invalid, or produce a no-operation result. Например, при вызове WriteStartMember для записи директив для инициализации объекта, который уже существует как экземпляр, реализация по умолчанию создает исключение.For example, if you call WriteStartMember to write directives for initialization on an object that already exists as an instance, the default implementation throws an exception.

Возможной методикой для отслеживания области в XamlObjectWriter пользовательском методе является согласование действий узла с классом стека или фрейма.A possible technique for tracking scope in a custom XamlObjectWriter is to align the node actions with a stack or frame class. Стек или кадр может отследить отправку и POP для каждого уровня глубины объектной модели, который был указан или закрыт во время XamlObjectWriter записи графа объекта.The stack or frame can keep track of push and pop for each level of object-model depth that is entered or exited while the XamlObjectWriter writes the object graph.

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

Для поддержки промежуточных и XamlObjectWriter расширенных сценариев механизм записи графа объектов предоставляет точки входа обратного вызова, происходящие XamlObjectWriter при фиксации или фиксации определенных действий.To support intermediate and advanced XamlObjectWriter scenarios, the mechanism of writing an object graph provides callback entry points that occur when a XamlObjectWriter commits or is about to commit certain actions. Некоторые обратные вызовы включены в параметрах и не зависят от типа объекта или записываемого члена; Однако сведения о обратном вызове часто доступны в контексте или в данных события, которые отправляются через обратный вызов.Some callbacks are enabled in the settings and are not specific to the object type or the member being written; however, callback information is often available in context or is in the event data that is sent through the callback. Ниже приведен список соответствующих обратных вызовов.The following is a list of relevant callbacks:

  • Обратный вызов, объявленный AfterBeginInitHandler , вызывается при переходе области к новому объекту и BeginInit на фазе времени существования объекта для каждого созданного объекта.The callback that is declared by AfterBeginInitHandler is invoked when the scope goes to a new object and at the BeginInit phase of object lifetime for each created object.

  • Обратный вызов, объявленный AfterEndInitHandler , вызывается при переходе области к новому объекту и EndInit на фазе времени существования объекта для каждого созданного объекта.The callback that is declared by AfterEndInitHandler is invoked when the scope goes to a new object and at the EndInit phase of object lifetime for each created object.

  • Обратный вызов, объявленный, BeforePropertiesHandler вызывается, когда область начинается в объекте и возникает, когда первый WriteStartMember вызов этой области объекта сделан, но еще не зафиксирован.The callback that is declared by BeforePropertiesHandler is invoked when the scope starts in an object, and occurs when the first WriteStartMember call to that object scope is made but not yet committed.

  • Обратный вызов, объявленный, AfterPropertiesHandler вызывается, когда область начинается в объекте и происходит, WriteEndObject когда вызов этой области объекта сделан, но еще не зафиксирован.The callback that is declared by AfterPropertiesHandler is invoked when the scope starts in an object, and happens when the WriteEndObject call to that object scope is made but not yet committed.

  • Обратный вызов, объявленный XamlSetValueHandler , вызывается при OnSetValue вызове метода.The callback that is declared by XamlSetValueHandler is invoked when OnSetValue is called.

Запись ключей словаряWriting Dictionary Keys

Реализация XamlObjectWriter по умолчанию поддерживает преобразование типов для ограничений Dictionary<TKey,TValue> перед добавлением содержимого словаря в граф объектов.The default implementation of XamlObjectWriter supports type conversion on the constraints of a Dictionary<TKey,TValue> before the dictionary contents are added to the object graph. Таким образом, универсальный словарь можно поключить во время выполнения с помощью объектов и сопоставить с соответствующим поведением Add универсального и индексатора.In this manner, a generic dictionary can be keyed at run time by objects and can match the relevant generic Add and indexer behavior. Однако, как реализовано для базовой XamlObjectWriterверсии, эта возможность существует только для создания графа объекта из Dictionary<TKey,TValue> базового класса, а Dictionary<TKey,TValue>не для производных классов.However, as implemented for the base XamlObjectWriter, this capability exists only for object graph creation from the base Dictionary<TKey,TValue> class and not for derived classes of Dictionary<TKey,TValue>.

Проверки для ликвидированныхChecks for Disposed

Средства записи XAML потенциально используются для отложенных операций или в том случае, если выполняется вызов для экземпляра модуля записи XAML, который был удален в промежуточной области.XAML writers are potentially used for deferred operations or where a call is made against a XAML writer instance that has been disposed in the interim. В таких случаях XamlObjectWriter могут создаваться ObjectDisposedException различные API-интерфейсы.Various APIs of XamlObjectWriter might throw ObjectDisposedException in these cases.

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

XamlObjectWriter(XamlSchemaContext) XamlObjectWriter(XamlSchemaContext) XamlObjectWriter(XamlSchemaContext) XamlObjectWriter(XamlSchemaContext)

Инициализирует новый экземпляр класса XamlObjectWriter, используя контекст схемы XAML, применяемый объектом XamlReader.Initializes a new instance of the XamlObjectWriter class using the XAML schema context that is used by a XamlReader.

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings) XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings) XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings) XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Инициализирует новый экземпляр класса XamlObjectWriter контекстом, используемым объектом XamlReader и его параметрами.Initializes a new instance of the XamlObjectWriter class using the context that is used by a XamlReader and its settings.

Свойства

IsDisposed IsDisposed IsDisposed IsDisposed

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

(Inherited from XamlWriter)
Result Result Result Result

Получает последний записанный объект.Gets the last object that was written. Вызывается, только когда поток узла достиг конца и граф объекта завершен.Typically only called when the node stream is at its end and the object graph is complete.

RootNameScope RootNameScope RootNameScope RootNameScope

Получает службу INameScope, которая поддерживает область имен XAML для абсолютного корня узла средства записи объекта XAML.Gets the INameScope service that maintains the XAML namescope for the absolute node root of the XAML object writer.

SchemaContext SchemaContext SchemaContext SchemaContext

Получает активный контекст схемы XAML.Gets the active XAML schema context.

ShouldProvideLineInfo ShouldProvideLineInfo ShouldProvideLineInfo ShouldProvideLineInfo

Получает значение, которое сообщает, должна ли служба сведений о строке предоставлять значения и, следовательно, вызывать метод SetLineInfo(Int32, Int32), когда это требуется.Gets a value that reports whether a line information service should provide values and therefore, should also call the SetLineInfo(Int32, Int32) method when it is relevant.

Методы

Clear() Clear() Clear() Clear()

Сбрасывает все возможные кадры и очищает граф объектов.Resets all possible frames and clears the object graph.

Close() Close() Close() Close()

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

(Inherited from XamlWriter)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом XamlObjectWriter, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the XamlObjectWriter, and optionally, releases the managed resources.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OnAfterBeginInit(Object) OnAfterBeginInit(Object) OnAfterBeginInit(Object) OnAfterBeginInit(Object)

Вызывает любой метод AfterBeginInitHandler, связанный с объектом XamlObjectWriterSettings, для данного объекта XamlObjectWriter.Invokes any AfterBeginInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterEndInit(Object) OnAfterEndInit(Object) OnAfterEndInit(Object) OnAfterEndInit(Object)

Вызывает любой метод AfterEndInitHandler, связанный с объектом XamlObjectWriterSettings, для данного объекта XamlObjectWriter.Invokes any AfterEndInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterProperties(Object) OnAfterProperties(Object) OnAfterProperties(Object) OnAfterProperties(Object)

Вызывает любой метод AfterPropertiesHandler, на который имеется ссылка и который связан с XamlObjectWriterSettings, для данного объекта XamlObjectWriter.Invokes any AfterPropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnBeforeProperties(Object) OnBeforeProperties(Object) OnBeforeProperties(Object) OnBeforeProperties(Object)

Вызывает любой метод BeforePropertiesHandler, на который имеется ссылка и который связан с XamlObjectWriterSettings, для данного объекта XamlObjectWriter.Invokes any BeforePropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnSetValue(Object, XamlMember, Object) OnSetValue(Object, XamlMember, Object) OnSetValue(Object, XamlMember, Object) OnSetValue(Object, XamlMember, Object)

Вызывает любой метод XamlSetValueHandler, на который имеется ссылка и который связан с XamlObjectWriterSettings, для этого средства записи при условии, что параметр handled в данных события XamlSetValueEventArgs имеет значение, отличное от true.Invokes any XamlSetValueHandler referenced method that is associated with XamlObjectWriterSettings for this writer, as long as handled in XamlSetValueEventArgs event data is not true.

SetLineInfo(Int32, Int32) SetLineInfo(Int32, Int32) SetLineInfo(Int32, Int32) SetLineInfo(Int32, Int32)

Реализует метод SetLineInfo(Int32, Int32) и предоставляет сведения о строке для исключений.Implements SetLineInfo(Int32, Int32) and provides line information for exceptions.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)
WriteEndMember() WriteEndMember() WriteEndMember() WriteEndMember()

Закрывает область текущего члена и может при закрытии записать значение области члена.Closes the current member scope, and may write the value of the member scope while it closes. Новая область становится областью родительского объекта этого члена.The new scope becomes the parent object scope of the member.

WriteEndObject() WriteEndObject() WriteEndObject() WriteEndObject()

Закрывает текущую область объекта в средстве записи.Closes the current object scope in the writer. Новой областью объекта становится область родительского члена.The new object scope becomes the parent member scope.

WriteGetObject() WriteGetObject() WriteGetObject() WriteGetObject()

Записывает концептуальный StartObject в граф объекта, если заданный объект является значением по умолчанию или неявным значением родительского свойства.Writes the conceptual StartObject into the object graph when the specified object is a default or implicit value of the parent property. Неявное значение получается из сведений, полученных из контекста схемы XAML и информации базовых типов, а не задается в виде значения объекта во входном наборе узлов XAML.The implicit value comes from information that is obtained from the XAML schema context and backing type information, instead of being specified as an object value in the input XAML node set.

WriteNamespace(NamespaceDeclaration) WriteNamespace(NamespaceDeclaration) WriteNamespace(NamespaceDeclaration) WriteNamespace(NamespaceDeclaration)

Определяет объявление пространства имен, которое применяется к следующей области объекта или члена.Defines a namespace declaration that applies to the next object scope or member scope.

WriteNode(XamlReader) WriteNode(XamlReader) WriteNode(XamlReader) WriteNode(XamlReader)

Производит переключение на основе типа узла от средства чтения XAML (NodeType) и вызывает соответствующий метод Write для реализации средства записи.Performs switching based on node type from the XAML reader (NodeType) and calls the relevant Write method for the writer implementation.

(Inherited from XamlWriter)
WriteStartMember(XamlMember) WriteStartMember(XamlMember) WriteStartMember(XamlMember) WriteStartMember(XamlMember)

Записывает новый узел члена в текущую область объекта, и эта область становится новой областью члена.Writes a new member node into the current object scope, and the scope becomes a new member scope.

WriteStartObject(XamlType) WriteStartObject(XamlType) WriteStartObject(XamlType) WriteStartObject(XamlType)

Записывает узел объекта в текущую область, и задает эту область для области нового объекта.Writes an object node into the current scope, and sets the scope to a new object scope.

WriteValue(Object) WriteValue(Object) WriteValue(Object) WriteValue(Object)

Выполняет запись значения в область текущего члена.Writes a value to the current member scope. Если текущая область находится в объекте коллекции, словаря или массива, это значение необходимо добавить в коллекцию, словарь или массив.If the current scope is inside a collection, dictionary, or array object, the value should be added to the collection, dictionary, or array.

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

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

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

(Inherited from XamlWriter)

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

Дополнительно