Změna dědičnosti instance

Může nastat situace, kdy instance, vytvořená jako potomek jedné nadřazené třídy, musí změnit nadřazenou třídu a stát se potomkem jiné nadřazené třídy. Můžete mít například odvozenou třídu, ManualService, popis ruční služby a odvozenou třídu, AutoService, popisující automatickou službu. Obě třídy mají velký počet vlastností. Ne všechny vlastnosti jsou identické. Chcete-li změnit službu z ruční na automatickou, musíte také změnit instanci představující službu z ManualService na AutoService. V aktuální verzi rozhraní WMI nelze volat metodu IWbemServices::PutInstance s parametrem pInst odkazujícím na instanci AutoService a klíčovými vlastnostmi popisujícími instanci ManualService. Pokud to uděláte, implicitně odstraníte původní instanci ManualService. V podstatě po vytvoření třídy instance můžete změnit pouze nadřazenou třídu instance odstraněním instance a opětovným vytvořením instance jako instance nové nadřazené třídy.

Následující postup popisuje, jak přesunout instanci z jedné třídy do jiné třídy.

Přesunutí instance z jedné třídy do jiné třídy

  1. Odstraňte instanci z původní třídy.

  2. Vytvořte instanci v rámci nové třídy.

    Rozhraní WMI neumožňuje aplikacím přesunout instanci tak, že ji vytvoří v nové třídě a pak ji aktualizuje klíčem původní instance.

Další informace naleznete v tématu manipulování informacemi o třídě a instanci.

 

 


Další materiály