更改实例的继承

你可能会发现这样一种情况:作为一个父类的子类创建的实例必须更改父类并成为另一个父类的子类。 例如,可以使用派生类 ManualService 来描述手动服务,使用派生类 AutoService 来描述自动服务。 这两个类都有大量属性。 并非所有属性都是相同的。 若要将服务从手动更改为自动,还必须将表示该服务的实例从 ManualService 更改为 AutoService。 在当前版本的 WMI 中,不能使用指向 AutoService 实例的 pInst 参数和描述 ManualService 实例的关键属性调用 IWbemServices::PutInstance 方法。 如果这样做,则会隐式删除原始 ManualService 实例。 从本质上讲,建立了一个实例的类之后,只能通过删除实例并将实例重新创建为新父类的实例来改变实例的父类。

以下过程介绍如何将实例从一个类移到另一个类。

将实例从一个类移到另一个类

  1. 从原始类中删除实例。

  2. 在新类下创建实例。

    WMI 不允许应用程序通过在新类中创建实例并使用原始实例的键更新它来移动实例。

有关详细信息,请参阅操作类和实例信息