Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Tablica jest indeksowaną listą wartości danych, które są tego samego typu danych, do których można się odwołać. Oprócz tablic ciągowych i liczbowych moF obsługuje tablice obiektów osadzonych i odwołań.
Następujące reguły definiują tablicę MOF:
Nawiasy używane po identyfikatorze właściwości określają tablicę w definicji klasy.
Class ArrayDataSample1 { string strArray1[]; };Wszystkie tablice muszą być jednowymiarowe.
Tablice mogą być niezwiązane lub mają jawny rozmiar.
Class MyClass { sint32 MyMethod1 ([in, id(0)] Win32_LogicalDisk DiskArray1[]); sint32 MyMethod2 ([in, id(0)] Win32_LogicalDisk DiskArray2[32]); };Usługa WMI implementuje powiązane i niezwiązane tablice jako struktury SAFEARRAY, dzięki czemu usługa WMI może różnić wymiary tablicy w czasie wykonywania. W przypadku deklarowania tablicy o jawnym rozmiarze usługa WMI przechowuje rozmiar jako kwalifikator i traktuje rozmiar jako sugerowany maksymalny rozmiar. Jednak w razie potrzeby usługa WMI może rozszerzyć rozmiar. Zmiana jawnego rozmiaru nie ma wpływu na rzeczywiste dane.
Tablice są inicjowane przez określenie wartości odpowiedniego typu na liście rozdzielanej przecinkami.
Class ArrayDataSample2 { [key] string s; string strArray2[] = {"hello", "there"}; sint32 dwArray[] = {1,2,3}; };Tablica odwołań jest zadeklarowana jako tablica ciągów ścieżki obiektu.
Podczas deklarowania ciągu ścieżki obiektu nie umieszczaj odstępu między elementami ścieżki obiektu. W poniższym przykładzie opisano sposób deklarowania odwołania do ścieżki obiektu.
Class ClassWithRefArray { [key] string s; object ref refArray[]; }; instance of ClassWithRefArray { s = 23; refArray = {"Disk.Name=\"C:\"", "Disk.Name=\"E:\""}; };Tablicę można użyć jako parametru dla metody, ale nie jako wartości zwracanej dla parametru wejściowego lub wejściowego.
Wszystkie elementy w tablicy są tworzone jako wartości tego samego typu.
Jeśli elementy tablicy są typu obiektu, można umieścić dowolny rodzaj obiektu w tablicy. Z drugiej strony, jeśli zadeklarujesz określony typ obiektu, usługa WMI zezwala tylko na obiekty tej klasy lub podklasy w tablicy. W poniższych przykładach pokazano deklaracje tablic, które obejmują używanie typu obiektu.
Class EmbedClass { [key] sint32 PropOfClass; }; Class ArrayDataClass { [key] string s; string strArray1[]; string strArray2[] = {"hello", "there"}; sint32 dwArray[] = {1,2,3}; EmbedClass objArray[]; }; instance of ArrayDataClass { s = "keyStuff"; strArray1 = { "1.2.3.4", "1.2.3.5", "1.2.3.7"}; strArray2 = { "SELECT * FROM RegistryKeyChangeEvent", "SELECT * FROM RegistryValueChangeEvent", "SELECT * FROM RegistryTreeChangeEvent" }; dwArray = { 1,2,3,5,6 }; objArray = { instance of EmbedClass{PropOfClass=3;}, instance of EmbedClass{PropOfClass=4;} }; };