Vytvoření třídy sjednocovacího zobrazení
Třída pohledu sjednocení je logické sjednocení instancí zdrojové třídy. Třída sjednocovacího zobrazení obsahuje všechny instance zdrojových tříd, pokud neomezujete instance zahrnutím klauzule WHERE do zdrojového dotazu.
Třídy zobrazení sjednocení jsou užitečné, když chcete zobrazit instance podobných nebo identických tříd, které jsou umístěny v různých názvových prostorech nebo na různých počítačích. Můžete například vytvořit sjednocující třídu, která obsahuje instance různých diskových jednotek ke sledování.
Vlastnosti třídy sjednocovacího zobrazení lze také založit na vlastnostech, které nejsou přítomné ve všech instancích zdrojové třídy. Pokud instance zdrojové třídy nemají stejnou vlastnost, vlastnosti instancí sjednocené třídy mají hodnotu NULL. Pokud má například jeden pevný disk vlastnost teploty , ale jiný nikoliv, můžete stále vytvořit sjednocení mezi těmito dvěma.
Následující postup popisuje, jak vytvořit třídu sjednoceného zobrazení.
Vytvoření třídy sjednocovacího zobrazení
Začněte definici třídy s pomocí kvalifikátoru řetězce Union.
Kvalifikátory JoinOn, Asociacea Unie se navzájem vylučují.
Vytvořte dotazy, které definují zdrojové třídy použité v třídě pohledu s kvalifikátorem ViewSources.
Definujte názvy a umístění oborů názvů, ve kterých jsou umístěny zdrojové třídy, pomocí kvalifikátoru ViewSpaces.
Definujte vlastnosti, které se mapují na vlastnosti ve zdrojových třídách, pomocí kvalifikátoru PropertySources.
V případě potřeby můžete některou z vlastností označit jako součást zdrojové třídy pomocí kvalifikátoru HiddenDefault.
Definujte klíčové vlastnosti zdrojových tříd třídy sjednocovacího zobrazení.
Každá zdrojová třída musí mít stejný počet klíčových vlastností, které jsou v souladu s CIMType. Klíče sjednocovací třídy zobrazení také musí jednoznačně identifikovat všechny zdrojové instance. V některých případech možná budete muset zadat systémové vlastnosti, abyste měli jistotu, že jsou instance jedinečné. Pokud například vytvoříte zobrazení ze sjednocení dvou identických tříd ve dvou různých oborech názvů, můžete do třídy zobrazení zahrnout vlastnost __Namespace jako klíč, abyste mohli rozlišovat mezi těmito dvěma instancemi. Pokud k vytvoření zobrazení použijete dvě podobné třídy ze stejného oboru názvů, můžete k rozlišení mezi nimi použít vlastnost __Class. Přejmenujte všechny systémové vlastnosti v zobrazení, abyste se vyhnuli konfliktu se systémovými vlastnostmi třídy zobrazení.
Definujte libovolné metody pomocí kvalifikátoru MethodSource, které chcete.
Na rozdíl od ostatních tříd zobrazení můžete vytvořit metody pro úpravu sjednocovacího zobrazení.
Následující příklad kódu popisuje unijní třídu zobrazení.
[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;
};