共用方式為


建立聯集檢視類別

等位檢視類別是來源類別實例的邏輯聯集。 等位檢視類別包含來源類別的所有實例,除非您在來源查詢中包含 WHERE 子句來限制實例。

當您想要查看位於不同命名空間或不同電腦上的類似或相同類別的實例時,聯集檢視類別很有用。 例如,您可以建立聯集類別,其中包含要監視的不同磁片磁碟機實例。

您也可以根據所有來源類別實例中不存在的屬性,根據等位檢視類別類別的屬性為基礎。 如果來源類別實例沒有相同的屬性,聯集類別實例的屬性就會有 Null值。 例如,如果一個硬碟具有 溫度 屬性,但另一個磁片磁碟機沒有,您仍然可以在兩者之間建立等位。

下列程式描述如何建立等位檢視類別。

建立等位檢視類別

  1. 使用 Union 字串限定詞開始您的類別定義。

    JoinOnAssociationUnion限定詞互斥。

  2. 建立查詢,以使用 ViewSources 限定詞定義檢視類別中使用的來源類別。

  3. 使用 ViewSpaces 限定詞定義來源類別所在的命名空間名稱和位置。

  4. 使用 PropertySources 限定詞定義對應至來源類別中屬性的屬性。

    如有必要,您可以使用 HiddenDefault 限定詞,將任何屬性標記為屬於來源類別。

  5. 定義等位檢視類別來源類別的索引鍵屬性。

    每個來源類別都必須有與 CIMType相符的索引鍵屬性數目相同。 此外,聯集檢視類別的索引鍵必須唯一識別所有來源實例。 在某些情況下,您可能需要指定系統屬性,以確保實例是唯一的。 例如,如果您從兩個不同命名空間中兩個相同類別的聯集建立檢視,您可以在檢視類別中包含 __Namespace 屬性做為索引鍵,以區分這兩個實例。 如果您使用來自相同命名空間的兩個類似類別來建立檢視,您可以使用 __Class 屬性來區別這兩者。 重新命名檢視中的任何系統屬性,以避免與檢視類別的系統屬性發生衝突。

  6. 使用 MethodSource 限定詞定義您想要的任何方法。

    不同于其他檢視類別,您可以建立方法來修改聯集檢視。

下列程式碼範例描述聯集檢視類別。

[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;
};