宣告關聯類別
關聯類別是一種特殊的類別類型,可定義兩個其他類別之間的關聯性。
下列程式描述如何使用 MOF 程式碼建立關聯類別。
使用 MOF 程式碼建立關聯類別
將 關聯 限定詞指派給您的類別。
雖然可以建立具有物件或類別參考的類別,但使用 Association 限定詞不僅能清楚說明您的類別是關聯類別,但最佳做法是確保類別完全以關聯類別的形式運作。
在 類別中建立兩個參考,描述您想要使用 ref 類型建立關聯的兩個物件實例。
參考會藉由包含 物件的路徑,在關聯中系結兩個物件。 雖然並非必要,但也請使用參考屬性做為索引鍵屬性。
雖然您可以建立完整或命名空間相對參考,但 WMI 僅對跨命名空間參考的支援有限。 具體而言,只有靜態定義的物件可以跨命名空間界限彼此參考;動態支援的物件無法彼此參考。
如有必要,請使用 HasClassRef 和 Classref 限定詞搭配 物件 ref 型別來參考類別。
WMI 支援將一個 ref 參考點指向 實例,而另一個 物件 參考點則支援類別。 在此情況下,您的關聯類別會描述將實例系結至類別的關聯。
下列程式碼範例描述搭配物件類型使用HasClassRef和Classref的語法。
[HasClassRefs, Association] class SomeAssocClass { [key, classref{ "MyEndpoint", "OtherContainer" }] object ref ep1; [key] object ref ep2; };
在上述範例中, ep1 參考可以指向 MyEndpoint 類別或 OtherContainer 類別的類別定義。 請注意,雖然您必須弱式輸入參考類別,但無法弱式輸入 Classref 限定詞本身;這麼做會大幅降低 WMI 查詢引擎的效率。 弱式類型是建立參考,可使用 object 關鍵字和 ref 資料類型來包含任何資料類型。 若要成功使用 HasClassRef,您必須設定相關的限定詞類別,以傳播至所有實例和子類別。
視需要建立任何其他屬性。
下列程式碼範例顯示 WMI 目前不支援具有小於或超過兩個參考屬性的關聯類別。
[Association : ToInstance] class MyAssocClass { ClassX ref PathToClassX ; ClassY ref PathToClassY ; };
完成後,請使用 MOF 編譯器編譯 MOF 程式碼。
如需詳細資訊,請參閱 編譯 MOF 檔案。
步驟 3 中的程式碼範例會定義 MyAssocClass 關聯類別。 MyAssocClass 類別會定義ClassX 與 ClassY之間的關聯性。 PathToClassX和PathToClassY屬性包含要關聯之類別實例的物件路徑。 關鍵字 ToInstance 是 WMI 定義的數個類別旗標之一,可提供限定詞使用的相關資訊。 ToInstance關鍵字表示 WMI 應該將關聯限定詞傳播至關聯類別的所有實例。 藉由檢查這個實例限定詞,用戶端軟體可以判斷實例屬於關聯類別,而不需要擷取類別定義來尋找 關聯 限定詞。 如需詳細資訊,請參閱使用限定詞類別和參考來描述限定詞。
相關主題