XamlObjectWriter Klasa

Definicja

Tworzy graf obiektu ze źródłowego strumienia węzła 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
Dziedziczenie
XamlObjectWriter
Implementuje

Uwagi

Write Metody implementowania XamlObjectWriter wzorca, aby XamlObjectWriter używać metody XamlWriter zdefiniowanej przez metodę WriteNode . WriteNode logika przełącza się między metodami Write , w zależności od typu węzła znajduje się w bieżącej pozycji w czytniku.

Zakres

Element XamlObjectWriter ma pojęcie zakresu, czyli XamlObjectWriter utrzymuje koncepcyjny punkt odniesienia w wykresie obiektu wyjściowego. W przypadku określonego zakresu niektóre operacje mogą być prawidłowe lub nieprawidłowe lub wygenerować wynik braku operacji. Jeśli na przykład wywołasz WriteStartMember wywołanie dyrektyw zapisu na potrzeby inicjowania obiektu, który już istnieje jako wystąpienie, domyślna implementacja zgłasza wyjątek.

Możliwą techniką śledzenia zakresu w niestandardowym XamlObjectWriter jest wyrównanie akcji węzła do stosu lub klasy ramowej. Stos lub ramka może śledzić wypychanie i wyskakujące okienka dla każdego poziomu głębokości modelu obiektów, która została wprowadzona lub zakończona podczas XamlObjectWriter zapisywania grafu obiektu.

Wywołania zwrotne

Aby obsługiwać scenariusze pośrednie i zaawansowane XamlObjectWriter , mechanizm pisania grafu obiektu zapewnia punkty wejścia wywołania zwrotnego, które występują, gdy XamlObjectWriter zatwierdzenia lub ma zatwierdzić określone akcje. Niektóre wywołania zwrotne są włączone w ustawieniach i nie są specyficzne dla typu obiektu lub elementu członkowskiego, który jest zapisywany; jednak informacje o wywołaniu zwrotnym są często dostępne w kontekście lub są w danych zdarzeń wysyłanych za pośrednictwem wywołania zwrotnego. Poniżej znajduje się lista odpowiednich wywołań zwrotnych:

  • Wywołanie zwrotne zadeklarowane przez AfterBeginInitHandler jest wywoływane, gdy zakres przechodzi do nowego obiektu i w BeginInit fazie okresu istnienia obiektu dla każdego utworzonego obiektu.

  • Wywołanie zwrotne zadeklarowane przez AfterEndInitHandler jest wywoływane, gdy zakres przechodzi do nowego obiektu i w EndInit fazie okresu istnienia obiektu dla każdego utworzonego obiektu.

  • Wywołanie zwrotne zadeklarowane przez BeforePropertiesHandler jest wywoływane, gdy zakres rozpoczyna się w obiekcie i występuje, gdy zostanie wykonane pierwsze WriteStartMember wywołanie zakresu obiektu, ale nie zostało jeszcze zatwierdzone.

  • Wywołanie zwrotne zadeklarowane przez AfterPropertiesHandler element jest wywoływane, gdy zakres rozpoczyna się w obiekcie i występuje, gdy WriteEndObject zostanie wykonane wywołanie tego zakresu obiektu, ale nie zostało jeszcze zatwierdzone.

  • Wywołanie zwrotne zadeklarowane przez XamlSetValueHandler element jest wywoływane, gdy OnSetValue jest wywoływane.

Pisanie kluczy słownika

Domyślna implementacja XamlObjectWriter obsługuje konwersję typów na ograniczenia przed Dictionary<TKey,TValue> dodaniu zawartości słownika do grafu obiektów. W ten sposób ogólny słownik może być kluczowany w czasie wykonywania przez obiekty i może być zgodny z odpowiednim zachowaniem ogólnego Add i indeksatora. Jednak zgodnie z implementacją XamlObjectWriterbazy ta funkcja istnieje tylko w przypadku tworzenia grafu obiektów z klasy bazowej Dictionary<TKey,TValue> , a nie dla klas pochodnych klasy Dictionary<TKey,TValue>.

Sprawdzanie usunięcia

Składniki zapisywania XAML są potencjalnie używane do odroczonych operacji lub gdy wywołanie jest wykonywane względem wystąpienia składnika zapisywania XAML, które zostało usunięte w międzyczasie. W takich przypadkach mogą występować ObjectDisposedException różne interfejsy XamlObjectWriter API.

Konstruktory

XamlObjectWriter(XamlSchemaContext)

Inicjuje XamlObjectWriter nowe wystąpienie klasy przy użyciu kontekstu schematu XAML używanego przez klasę XamlReader.

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Inicjuje XamlObjectWriter nowe wystąpienie klasy przy użyciu kontekstu używanego przez XamlReader element i jego ustawienia.

Właściwości

IsDisposed

Pobiera, czy Dispose(Boolean) został wywołany.

(Odziedziczone po XamlWriter)
Result

Pobiera ostatni zapisany obiekt. Zazwyczaj wywoływane tylko wtedy, gdy strumień węzła znajduje się na końcu, a wykres obiektu jest ukończony.

RootNameScope

Pobiera usługę INameScope , która obsługuje zakres nazw XAML dla katalogu głównego węzła bezwzględnego składnika zapisywania obiektów XAML.

SchemaContext

Pobiera aktywny kontekst schematu XAML.

ShouldProvideLineInfo

Pobiera wartość, która zgłasza, czy usługa informacyjna wiersza powinna podać wartości, a zatem powinna również wywoływać metodę SetLineInfo(Int32, Int32) , gdy jest ona odpowiednia.

Metody

Clear()

Resetuje wszystkie możliwe ramki i czyści wykres obiektu.

Close()

Zamyka obiekt modułu zapisywania XAML.

(Odziedziczone po XamlWriter)
Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez XamlObjectWriterprogram i opcjonalnie zwalnia zarządzane zasoby.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnAfterBeginInit(Object)

Wywołuje dowolną AfterBeginInitHandler metodę skojarzną z XamlObjectWriterSettingsXamlObjectWritermetodą .

OnAfterEndInit(Object)

Wywołuje dowolną AfterEndInitHandler metodę skojarzną z XamlObjectWriterSettingsXamlObjectWritermetodą .

OnAfterProperties(Object)

Wywołuje dowolną AfterPropertiesHandler metodę, która jest skojarzona z XamlObjectWriterSettingsXamlObjectWritermetodą .

OnBeforeProperties(Object)

Wywołuje dowolną BeforePropertiesHandler metodę, która jest skojarzona z XamlObjectWriterSettingsXamlObjectWritermetodą .

OnSetValue(Object, XamlMember, Object)

Wywołuje dowolną XamlSetValueHandler metodę, która jest skojarzona z tym modułem XamlObjectWriterSettings zapisywania, o handled ile w XamlSetValueEventArgs przypadku danych zdarzenia nie truejest .

SetLineInfo(Int32, Int32)

Implementuje SetLineInfo(Int32, Int32) i udostępnia informacje o wierszach dla wyjątków.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
WriteEndMember()

Zamyka bieżący zakres elementu członkowskiego i może zapisać wartość zakresu składowego, gdy zostanie zamknięta. Nowy zakres staje się zakresem obiektu nadrzędnego elementu członkowskiego.

WriteEndObject()

Zamyka bieżący zakres obiektu w składniku zapisywania. Nowy zakres obiektu staje się zakresem elementu członkowskiego nadrzędnego.

WriteGetObject()

Zapisuje koncepcję StartObject na wykresie obiektu, gdy określony obiekt jest wartością domyślną lub niejawną właściwości nadrzędnej. Niejawna wartość pochodzi z informacji uzyskanych z kontekstu schematu XAML i informacji o typie kopii zapasowej zamiast określać jako wartość obiektu w zestawie węzłów wejściowych XAML.

WriteNamespace(NamespaceDeclaration)

Definiuje deklarację przestrzeni nazw, która ma zastosowanie do następnego zakresu obiektu lub zakresu składowego.

WriteNode(XamlReader)

Wykonuje przełączanie na podstawie typu węzła z czytnika XAML (NodeType) i wywołuje odpowiednią Write metodę implementacji modułu zapisywania.

(Odziedziczone po XamlWriter)
WriteStartMember(XamlMember)

Zapisuje nowy węzeł członkowski w bieżącym zakresie obiektu, a zakres staje się nowym zakresem elementu członkowskiego.

WriteStartObject(XamlType)

Zapisuje węzeł obiektu w bieżącym zakresie i ustawia zakres na nowy zakres obiektu.

WriteValue(Object)

Zapisuje wartość w bieżącym zakresie elementu członkowskiego. Jeśli bieżący zakres znajduje się wewnątrz kolekcji, słownika lub obiektu tablicy, należy dodać wartość do kolekcji, słownika lub tablicy.

Jawne implementacje interfejsu

IDisposable.Dispose()

Zobacz: Dispose().

(Odziedziczone po XamlWriter)

Dotyczy

Zobacz też