Membuat Kelas Tampilan Union
Kelas tampilan serikat adalah persatuan logis instans kelas sumber. Kelas tampilan gabungan menyertakan semua instans kelas sumber kecuali Anda membatasi instans dengan menyertakan klausa WHERE pada kueri sumber.
Kelas tampilan union berguna ketika Anda ingin melihat instans kelas serupa atau identik yang terletak di namespace layanan yang berbeda atau di komputer yang berbeda. Misalnya, Anda dapat membuat kelas gabungan yang berisi instans drive disk yang berbeda untuk dipantau.
Anda juga dapat mendasarkan properti kelas tampilan union pada properti yang tidak ada di semua instans kelas sumber. Jika instans kelas sumber tidak memiliki properti yang sama, properti instans kelas union memiliki nilai NULL. Misalnya, jika satu hard disk drive memiliki properti suhu tetapi yang lain tidak, Anda masih dapat membuat gabungan di antara keduanya.
Prosedur berikut menjelaskan cara membuat kelas tampilan union.
Untuk membuat kelas tampilan union
Mulai definisi kelas Anda dengan pengualifikasi untai (karakter) Union .
Kualifikasi JoinOn, Association, dan Union saling eksklusif.
Buat kueri yang menentukan kelas sumber yang digunakan di kelas tampilan dengan kualifikasi ViewSources .
Tentukan nama dan lokasi namespace tempat kelas sumber berada dengan kualifikasi ViewSpaces .
Tentukan properti yang memetakan ke properti di kelas sumber dengan kualifikasi PropertySources .
Jika perlu, Anda dapat menandai salah satu properti sebagai milik kelas sumber dengan menggunakan kualifikasi HiddenDefault .
Tentukan properti utama kelas sumber kelas tampilan union Anda.
Setiap kelas sumber harus memiliki jumlah properti kunci yang sama yang cocok dengan CIMType. Selain itu, kunci kelas tampilan serikat Anda harus secara unik mengidentifikasi semua instans sumber. Dalam beberapa kasus, Anda mungkin perlu menentukan properti sistem untuk memastikan bahwa instans unik. Misalnya, jika Anda membuat tampilan dari penyatuan dua kelas yang identik di dua namespace layanan yang berbeda, Anda dapat menyertakan properti __Namespace sebagai kunci di kelas tampilan untuk membedakan antara dua instans. Jika Anda menggunakan dua kelas serupa dari namespace yang sama untuk membuat tampilan, Anda dapat menggunakan properti __Class untuk membedakan antara keduanya. Ganti nama properti sistem apa pun dalam tampilan sehingga Anda dapat menghindari konflik dengan properti sistem dari kelas tampilan.
Tentukan metode apa pun yang Anda inginkan menggunakan kualifikasi MethodSource .
Tidak seperti kelas tampilan lainnya, Anda dapat membuat metode untuk memodifikasi tampilan union.
Contoh kode berikut menjelaskan kelas tampilan union.
[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;
};