ValueMap 和 Value 限定符
值對應是連結至具有 Value 和 ValueMap 限定符之屬性的陣列。
屬性會做為陣列中的索引,並持有代表陣列中其中一個值的值。 使用 MOF 程式代碼,您可以具有下列類型的值對應:
數位對應至整數。
您可以使用 Value 限定符來定義數位,並將陣列直接連結至整數屬性,如下列範例所示:
[Values {"OK", "Error", "Degraded", "Unknown"}, Read] sint32 Status;
在此範例中,Status 屬性值是 Value所定義的字串數位索引。 屬性只能接受對應至 Value 陣列減 1 中序數位置的值。 例如,將 Status 設定為 “1” 會對應至 “Error” 值。 index 屬性只能接受對應至 Value 陣列中位置的值。 例如,如果陣列有10個專案,則索引屬性可以分頁0到9,而不是30或177。
數位對應至另一個陣列對應至整數。
如果您想要建立不使用計算序數系統的索引,請使用 ValueMap 限定符。 ValueMap 限定符會設定另一個陣列來保存任意索引編號系統,如下列範例所示:
[ValueMap {"1", "3", "99", "0"}, Values {"OK", "Error", "Degraded", "Unknown"}, Read] sint32 Status;
雖然您必須將 ValueMap 的值放在引號中,但 WMI 會考慮值整數。 因此,在此範例中,您可以將 Status 屬性設定為 ValueMap set 中的整數:1、3、99 或 0。 WMI 會將 ValueMap 中序數位置中的每個整數, 字串陣列對應至 Value 陣列中的對應位置。 例如,將 [狀態] 設定為 0 會對應至 [未知]。
數位對應至字串的另一個數位對應。
如果您不想使用整數來編製數位的索引,您可以改用字串來保存陣列中的其中一個可能值。 若要這樣做,您必須定義同時包含字串的 Value 和 ValueMap 陣列,如下列範例所示:
[ValueMap {"OK", "Error", "Degraded", "Unknown"}, Values {"OK", "Error", "Degraded", "Unknown"}, Read] string Status;
使用字串屬性時,屬性的實際允許值是 valueMap 陣列中 的專案。 例如,您可以將 [狀態] 設定為 [確定] 或 [未知]。
應用程式必須以有用的方式利用對應。 提供者必須強制執行合法的值範圍。
言論
在決定是否要使用 ValueMap/Value 或 BitMap/BitValues 限定符時,判斷是否有任何要同時顯示的值。 如果有多個並行值存在,您必須使用 BitMap/BitValues。 如果所有值互斥,您應該使用 ValueMap/Value 限定符。
相關主題