共用方式為


宣告關聯類別

關聯類別是一種特殊的類別類型,可定義兩個其他類別之間的關聯性。

下列程式描述如何使用MOF程式代碼建立關聯類別。

使用MOF程式代碼 建立關聯類別

  1. 關聯 限定符指派給您的類別。

    雖然您可以建立具有對象或類別參考的類別,但使用 關聯 限定符不僅能清楚說明您的類別是關聯類別,而且最佳做法是確保類別完全可作為關聯類別。

  2. 在類別內建立兩個參考,以描述您希望使用 ref 類型將這兩個物件的實例關聯在一起。

    引用會藉由包含對象的路徑,將兩個對象在關聯中綁定。 雖然並非必要,但建議使用參考屬性作為主要屬性。

    雖然您可以建立完全限定名稱或命名空間相對的參考,但 WMI 僅有限度支援跨命名空間的參考。 具體來說,只有靜態定義的物件可以跨命名空間界限彼此參考;動態支援的物件無法彼此參考。

    如有必要,請使用 HasClassRefClassref 限定符,並配合 物件參照型別 以參考一個類別。

    WMI 支援將一個 ref 參考點指向 實例,而另一個 物件 參考點指向類別。 在此情況下,您的關聯類別會描述將實例系結至類別的關聯。

    以下程式碼範例說明如何使用 HasClassRefClassref 語法與 物件 型別搭配使用的語法。

    [HasClassRefs, Association]
    class SomeAssocClass
    {
         [key, classref{ "MyEndpoint", "OtherContainer" }]
         object ref ep1;
         [key] object ref ep2;
    }; 
    

    在上一個範例中,ep1 參考可以指向 MyEndpoint 類別的類別定義,或是 OtherContainer 類別。 請注意,雖然您必須弱類型化參考類別,但無法弱類型化 類別參考的 限定符本身,這樣做會嚴重降低 WMI 查詢引擎的效率。 弱式型別會建立參考,該參考可使用 物件 關鍵詞和 ref 數據類型來包含任何數據類型。 若要成功使用 HasClassRef,您必須設定相關的限定符選項,以傳遞到所有實例和子類別。

  3. 視需要建立任何其他屬性。

    下列程式代碼範例顯示 WMI 目前不支援具有少於兩個參考屬性的關聯類別。

    [Association : ToInstance] 
    class MyAssocClass
    {
        ClassX ref PathToClassX ;
        ClassY ref PathToClassY ;
    };
    
  4. 完成後,請使用MOF編譯程式編譯MOF程式代碼。

    如需詳細資訊,請參閱 編譯MOF檔案

步驟 3 中的程式碼範例會定義 MyAssocClass 關聯類別。 MyAssocClass 類別定義了 ClassXClassY之間的關聯性。 PathToClassXPathToClassY 屬性包含要關聯之類別實例的物件路徑。 ToInstance 關鍵詞是 WMI 定義的數個用於提供有關限定符使用情況信息的特性標誌之一。 ToInstance 關鍵詞表示 WMI 應該將 關聯 限定符傳播到關聯類別的所有實例。 藉由檢查這個實例限定符,用戶端軟體可以判斷實例屬於關聯類別,而不需要擷取類別定義來尋找 關聯 限定符。 如需詳細資訊,請參閱 限定符風格的描述參照

設計受控物件格式 (MOF) 類別