Share via


Como alterar a herança de uma instância

Você pode encontrar uma situação em que uma instância criada como filho de uma classe pai deve alterar as classes pai e se tornar o filho de uma classe pai diferente. Por exemplo, você pode ter uma classe derivada, ManualService, descrevendo um serviço manual, e uma classe derivada, AutoService, descrevendo um serviço automático. Ambas as classes têm um grande número de propriedades. Nem todas as propriedades são idênticas. Para alterar um serviço do manual para o automático, você também deve alterar a instância que representa o serviço do ManualService para o AutoService. Na versão atual do WMI, você não pode chamar o método IWbemServices::P utInstance com o parâmetro pInst apontando para uma instância do AutoService e as propriedades de chave que descrevem a instância de ManualService. Se você fizer isso, excluirá implicitamente a instância original do ManualService. Em essência, depois de estabelecer a classe de uma instância, você só poderá alterar a classe pai de uma instância excluindo a instância e recriando a instância como uma instância da nova classe pai.

O procedimento a seguir descreve como mover uma instância de uma classe para outra classe.

Para mover uma instância de uma classe para outra classe

  1. Exclua a instância da classe original.

  2. Crie a instância na nova classe.

    O WMI não permite que os aplicativos movam uma instância criando-a na nova classe e, em seguida, atualizando-a com a chave da instância original.

Para obter mais informações, confira Como manipular informações de classe e instância.