Freezable.GetAsFrozenCore(Freezable) Metoda
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.
Sprawia, że wystąpienie jest zamrożonym klonem określonego Freezable przy użyciu wartości właściwości base (nieimowane).
protected:
virtual void GetAsFrozenCore(System::Windows::Freezable ^ sourceFreezable);
protected virtual void GetAsFrozenCore (System.Windows.Freezable sourceFreezable);
abstract member GetAsFrozenCore : System.Windows.Freezable -> unit
override this.GetAsFrozenCore : System.Windows.Freezable -> unit
Protected Overridable Sub GetAsFrozenCore (sourceFreezable As Freezable)
Parametry
- sourceFreezable
- Freezable
Wystąpienie do skopiowania.
Uwagi
Ta metoda jest wywoływana przez metodę GetAsFrozen i nie powinna być wywoływana bezpośrednio z kodu, z wyjątkiem wywoływania implementacji podstawowej podczas zastępowania tej metody. Aby utworzyć zamrożoną kopię bieżącego obiektu, wywołaj metodę GetAsFrozen zamiast bezpośrednio wywołać tę metodę.
Uwagi dotyczące dziedziczenia
Jeśli pochodzisz z Freezable metody , może być konieczne zastąpienie tej metody. Przyczyny zastąpienia obejmują następujące kwestie:
Klasa pochodna zawiera dane, które nie są widoczne za pośrednictwem właściwości zależności.
Klasa pochodna musi wykonać dodatkową pracę inicjowania, której nie można wykonać, po prostu przesłaniając CreateInstanceCore()element . Dotyczy to na przykład, jeśli klasa pochodna implementuje ISupportInitializewartość .
Klasy, które przechowują wszystkie swoje dane we właściwościach zależności i które nie muszą wykonywać dodatkowych zadań inicjowania, nie muszą zastępować GetAsFrozenCore(Freezable)elementu .
Ważne jest, aby wszystkie implementacje wywoływać podstawową implementację tej metody. Implementacje powinny wykonywać tylko zadania, które nie są wykonywane przez domyślną implementację. Domyślna implementacja sprawia, że głębokie kopie wszelkich niezamrożonych i płytkich kopii wszystkich innych zapisywalnych, lokalnie ustawionych właściwości zawiera. Jeśli obiekt ma właściwości zależności powiązane z danymi, wyrażenia są kopiowane, ale mogą już nie zostać rozwiązane; Aby uzyskać więcej informacji na temat klonowania obiektów powiązanych z danymi, zobacz Omówienie obiektów z możliwością zamrażania. Jeśli obiekt ma animowane właściwości zależności, zostaną skopiowane podstawowe (nieimowane) wartości tych właściwości. Animacje nie są kopiowane.
Należy pamiętać, że nieskonfigurowane właściwości nie są kopiowane ani nie są właściwościami tylko do odczytu.
Jeśli zastąpisz tę metodę, musisz wywołać implementację podstawową.
Wartości nie są konieczne Freeze() , ponieważ są kopiowane. Wynik jest zamrożony przed GetAsFrozen() zwróceniem.