共用方式為


建立聯集視圖類別

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

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

您也可以將等位檢視類別的屬性基底放在所有來源類別實例中不存在的屬性上。 如果來源類別實例沒有相同的屬性,聯集類別實例的屬性 NULL。 例如,如果一個硬碟驅動器具有 溫度 屬性,但另一個硬碟驅動器沒有,您仍然可以在兩者之間建立聯集。

下列程式描述如何建立合併檢視類別。

若要建立聯合檢視類別

  1. 使用 聯集 字串限定符來開始您的類別定義。

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