Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Uma classe de exibição de união é uma união lógica de instâncias de classe de origem. Uma classe de exibição de união inclui todas as instâncias das classes de origem, a menos que você limite as instâncias incluindo uma cláusula WHERE na consulta de origem.
As classes de exibição de união são úteis quando você deseja ver instâncias de classes semelhantes ou idênticas localizadas em namespaces diferentes ou em computadores diferentes. Por exemplo, pode criar uma classe de união que contenha instâncias de diferentes unidades de disco para monitorizar.
Você também pode definir as propriedades de uma classe de visualização de união com base em propriedades não presentes em todas as instâncias de classe de origem. Se as instâncias de classe de origem não tiverem a mesma propriedade, as propriedades de instâncias de classe de união terão um valor de NULL. Por exemplo, se uma unidade de disco rígido tiver uma propriedade temperatura, mas outra não, ainda é possível criar uma união entre as duas.
O procedimento a seguir descreve como criar uma classe de exibição união.
Para criar uma classe de visualização de união
Comece sua definição de classe com o qualificador de cadeia de caracteres Union.
Os qualificadores JoinOn, Associatione Union são mutuamente exclusivos.
Crie as consultas que definem as classes de origem usadas na classe de visualização com o qualificador ViewSources.
Defina os nomes e o local dos namespaces nos quais se encontram as classes de origem com o qualificador ViewSpaces.
Defina as propriedades que correspondem às propriedades nas classes de origem com o qualificador PropertySources.
Se necessário, pode-se marcar qualquer uma das propriedades como pertencente a uma classe fonte usando o qualificador HiddenDefault.
Defina as principais propriedades das classes de origem das suas classes de visão de união.
Cada classe de origem deve ter o mesmo número de propriedades de chave correspondentes a CIMType. Além disso, as chaves da sua classe de visão unificada devem identificar exclusivamente todas as instâncias de origem. Em alguns casos, talvez seja necessário especificar as propriedades do sistema para garantir que as instâncias sejam exclusivas. Por exemplo, se criar uma vista a partir da união de duas classes idênticas em dois namespaces diferentes, poderá incluir a propriedade __Namespace como uma chave na classe de vista para diferenciar entre as duas instâncias. Se você usar duas classes semelhantes do mesmo namespace para criar uma exibição, poderá usar a propriedade __Class para distinguir entre as duas. Renomeie todas as propriedades do sistema no modo de exibição para evitar um conflito com as propriedades do sistema da classe de exibição.
Defina quaisquer métodos usando o qualificador MethodSource.
Ao contrário de outras classes de vista, pode-se criar métodos para modificar uma vista de união.
O exemplo de código a seguir descreve uma classe de exibição união.
[Union, ViewSources{"SELECT Description, DeviceID, __Namespace, FileSystem, FreeSpace, VolumeName FROM LocalDisk",
"SELECT Description, DeviceID, __Namespace, FileSystem, FreeSpace, VolumeName FROM RemoteDisk"},
ViewSpaces{"\\\\.\\Root\\LocalNamespace","\\\\.\\Root\\RemoteNamespace"},
dynamic: ToInstance, provider("MS_VIEW_INSTANCE_PROVIDER")]
class UnionOfDrives
{
[PropertySources{"Description", "Description"}] string des;
[PropertySources{"DeviceID", "DeviceID"}, key] String did;
[PropertySources{"__Namespace", "__Namespace"}, key] String KEYID;
[PropertySources{"FileSystem", "FileSystem"}] String fsystem ;
[PropertySources{"FreeSpace", "FreeSpace"}] uint64 fspace;
[PropertySources{"VolumeName", "VolumeName"}] String vname;
};