Udostępnij za pośrednictwem


Kwalifikatory wartości i mapowania wartości

Mapa wartości to tablica połączona z właściwością z Value i ValueMap kwalifikatory.

Właściwość działa jako indeks w tablicy, przechowując wartość reprezentującą jedną z wartości w tablicy. Za pomocą kodu MOF można mieć następujące typy map wartości:

  • Mapowanie tablic na liczbę całkowitą.

    Tablicę można zdefiniować za pomocą value kwalifikatora i połączyć tablicę bezpośrednio z właściwością całkowitą, jak pokazano w poniższym przykładzie:

    [Values {"OK", "Error", "Degraded", "Unknown"}, Read]
    sint32 Status;
    

    W tym przykładzie wartość właściwości Status jest indeksem w tablicy ciągów zdefiniowanej przez Value. Właściwość może przyjmować tylko wartości, które odpowiadają pozycji porządkowych w tablicy Value minus 1. Na przykład ustawienie Stan na wartość "1" jest mapowania na wartość "Błąd". Właściwość indeksu może przyjmować tylko wartości, które odpowiadają pozycjom w tablicy Value. Jeśli na przykład tablica zawiera 10 wpisów, właściwość indeksu może zawierać historię od 0 do 9, a nie 30 lub 177.

  • Mapowanie tablic na inną tablicę mapowania na liczbę całkowitą.

    Jeśli chcesz utworzyć indeks, który nie używa systemu porządkowego zliczania, użyj ValueMap kwalifikatora. ValueMap kwalifikator konfiguruje kolejną tablicę zawierającą dowolny system numerowania indeksów, jak pokazano w poniższym przykładzie:

    [ValueMap {"1", "3", "99", "0"}, 
     Values {"OK", "Error", "Degraded", "Unknown"}, Read]
    sint32 Status;
    

    Mimo że należy umieścić wartości ValueMap w cudzysłowie, usługa WMI uwzględnia wartości całkowite. W związku z tym w tym przykładzie można ustawić właściwość Status na liczbę całkowitą w zestawie ValueMap: 1, 3, 99 lub 0. Usługa WMI mapuje każdą liczbę całkowitą z pozycji porządkowej w tablicy ciągów ValueMap na odpowiednią pozycję w tablicy Value. Na przykład ustawienie Stan na 0 mapuje wartość "Nieznany".

  • Mapowanie tablic na inne mapowanie tablicy na ciąg.

    Jeśli nie chcesz używać liczby całkowitej do indeksowania tablicy, możesz zamiast tego użyć ciągu do przechowywania jednej z możliwych wartości w tablicy. W tym celu należy zdefiniować zarówno wartość, jak i tablicę ValueMap zawierającą oba ciągi, jak pokazano w poniższym przykładzie:

    [ValueMap {"OK", "Error", "Degraded", "Unknown"}, 
     Values {"OK", "Error", "Degraded", "Unknown"}, Read]
    string Status;
    

    W przypadku właściwości string rzeczywiste dozwolone wartości właściwości to wpisy w tablicy ValueMap. Można na przykład ustawić stan na "OK" lub "Nieznany".

Aplikacja korzysta z mapowań w przydatny sposób. Do dostawcy należy wymuszenie prawnego zakresu wartości.

Uwagi

Podejmując decyzję, czy należy użyć ValueMap/Value, czy BitMap/bitValues kwalifikatorów, ustal, czy którakolwiek z wskazywanych wartości może wystąpić współbieżnie. Jeśli może istnieć wiele współbieżnych wartości, należy użyć BitMap/BitValues. Jeśli wszystkie wartości wzajemnie się wykluczają, należy użyć ValueMap/Value kwalifikatorów.

BitMap i BitValues