Поделиться через


Изменение наследования экземпляра

Может возникнуть ситуация, когда экземпляр, созданный в качестве дочернего элемента одного родительского класса, должен изменить родительский класс и стать дочерним элементом другого родительского класса. Например, у вас может быть производный класс, ManualService, описывающий службу вручную и производный класс, autoService, описывающий автоматическую службу. Оба класса имеют большое количество свойств. Не все свойства идентичны. Чтобы изменить службу с ручного управления на автоматическое управление, необходимо также изменить экземпляр, представляющий службу, с ManualService на AutoService. В текущей версии WMI нельзя вызвать метод IWbemServices::PutInstance с параметром pInst, указывающим на экземпляр AutoService, и ключевыми свойствами, описывающими экземпляр ManualService. Если вы это сделаете, вы неявно удалите исходный экземпляр ManualService. По сути, после установки класса экземпляра можно изменить только родительский класс экземпляра, удалив экземпляр и повторно создав экземпляр в качестве экземпляра нового родительского класса.

В следующей процедуре описывается перемещение экземпляра из одного класса в другой класс.

Перемещение экземпляра из одного класса в другой класс

  1. Удалите экземпляр из исходного класса.

  2. Создайте экземпляр в новом классе.

    WMI не позволяет приложениям перемещать экземпляр, создавая его в новом классе, а затем обновляя его ключом исходного экземпляра.

Дополнительные сведения см. в управлении сведениями о классе и экземпляре.