XamlObjectWriter Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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 XamlObjectWriterSettings tą XamlObjectWritermetodą . |
OnAfterEndInit(Object) |
Wywołuje dowolną AfterEndInitHandler metodę skojarzną z XamlObjectWriterSettings tą XamlObjectWritermetodą . |
OnAfterProperties(Object) |
Wywołuje dowolną AfterPropertiesHandler metodę, która jest skojarzona z XamlObjectWriterSettings tą XamlObjectWritermetodą . |
OnBeforeProperties(Object) |
Wywołuje dowolną BeforePropertiesHandler metodę, która jest skojarzona z XamlObjectWriterSettings tą XamlObjectWritermetodą . |
OnSetValue(Object, XamlMember, Object) |
Wywołuje dowolną XamlSetValueHandler metodę, która jest skojarzona z tym modułem XamlObjectWriterSettings zapisywania, o |
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ę |
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ą |
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) |