宣告關聯類別

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

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

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

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

    雖然可以建立具有物件或類別參考的類別,但使用 Association 限定詞不僅能清楚說明您的類別是關聯類別,但最佳做法是確保類別完全以關聯類別的形式運作。

  2. 在 類別中建立兩個參考,描述您想要使用 ref 類型建立關聯的兩個物件實例。

    參考會藉由包含 物件的路徑,在關聯中系結兩個物件。 雖然並非必要,但也請使用參考屬性做為索引鍵屬性。

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

    如有必要,請使用 HasClassRefClassref 限定詞搭配 物件 ref 型別來參考類別。

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

    下列程式碼範例描述搭配物件類型使用HasClassRefClassref的語法。

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

    在上述範例中, ep1 參考可以指向 MyEndpoint 類別或 OtherContainer 類別的類別定義。 請注意,雖然您必須弱式輸入參考類別,但無法弱式輸入 Classref 限定詞本身;這麼做會大幅降低 WMI 查詢引擎的效率。 弱式類型是建立參考,可使用 object 關鍵字和 ref 資料類型來包含任何資料類型。 若要成功使用 HasClassRef,您必須設定相關的限定詞類別,以傳播至所有實例和子類別。

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

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

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

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

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

(MOF) 類別設計 Managed 物件格式