Udostępnij przez


Zmienianie dziedziczenia instancji

Może się zdarzyć, że wystąpienie, które zostało utworzone jako element podrzędny jednej klasy nadrzędnej, musi zmienić klasy nadrzędne i stać się elementem podrzędnym innej klasy nadrzędnej. Na przykład może istnieć klasa pochodna, ManualService, opisując usługę ręczną i klasę pochodną AutoService, opisując usługę automatyczną. Obie klasy mają dużą liczbę właściwości. Nie wszystkie właściwości są identyczne. Aby zmienić usługę z ręcznej na automatyczną, należy również zmienić wystąpienie reprezentujące usługę z ManualService na AutoService. W bieżącej wersji WMI nie można wywołać metody IWbemServices::PutInstance z parametrem pInst wskazującym na wystąpienie AutoService oraz właściwości kluczowe opisujące wystąpienie ManualService. Jeśli to zrobisz, niejawnie usuniesz oryginalne wystąpienie ManualService. Zasadniczo po ustanowieniu klasy wystąpienia można zmienić tylko klasę nadrzędną wystąpienia, usuwając wystąpienie i ponownie tworząc wystąpienie jako wystąpienie nowej klasy nadrzędnej.

Poniższa procedura opisuje sposób przenoszenia wystąpienia z jednej klasy do innej klasy.

Aby przenieść wystąpienie z jednej klasy do innej

  1. Usuń wystąpienie z oryginalnej klasy.

  2. Utwórz wystąpienie pod nową klasą.

    Usługa WMI nie zezwala aplikacjom na przenoszenie wystąpienia przez utworzenie go w nowej klasie, a następnie zaktualizowanie go przy użyciu klucza oryginalnego wystąpienia.

Aby uzyskać więcej informacji, zobacz Manipulowanie informacjami o klasie i instancji.