Поделиться через


Объявление класса Ассоциации

Класс ассоциации — это особый тип класса, который определяет связь между двумя другими классами.

В следующей процедуре описывается создание класса ассоциации с помощью кода MOF.

Создание класса ассоциации с помощью КОДА MOF

  1. Назначьте вашему классу квалификатор ассоциации.

    Хотя можно создать класс со ссылками на объекты или классы, использование квалификатора ассоциации не только дает понять, что ваш класс является классом ассоциации, но, как лучшая практика, гарантирует, что класс полностью функционирует как класс ассоциации.

  2. Создайте две объектные ссылки в классе, описывая два экземпляра объекта, которые необходимо связать при помощи типа ref.

    Ссылки привязывают два объекта в ассоциации, содержая пути к объектам. Хотя и не требуется, используйте ссылочные свойства в качестве ключевых свойств.

    Хотя можно создать полные или относительные ссылки на пространство имен, WMI имеет ограниченную поддержку межпространственных ссылок. В частности, только статически определенные объекты могут ссылаться друг на друга по границам пространства имен; Динамически поддерживаемые объекты не могут ссылаться друг на друга.

    При необходимости используйте квалификаторы HasClassRef и Classref в сочетании с типом объекта для указания на класс.

    WMI поддерживает наличие одной ссылочной точки на экземпляр, а другой объект ссылочной точкой класса. В этом случае класс ассоциации описывает связь, которая привязывает экземпляры к классам.

    В следующем примере кода описывается синтаксис использования HasClassRef и Classref с объектным типом .

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

    В предыдущем примере ссылка ep1 может указывать на определения классов для класса класса MyEndpoint или класса OtherContainer. Обратите внимание, что хотя необходимо слабо ввести ссылочный класс, нельзя слабо ввести сам квалификатор класса Classref; это значительно уменьшит эффективность обработчика запросов WMI. Слабая типизация создает ссылку, которая может содержать любой тип данных, используя ключевое слово объекта и тип данных ref. Чтобы успешно использовать HasClassRef, необходимо задать соответствующие типы квалификаторов для распространения на все экземпляры и подклассы.

  3. При необходимости создайте любые другие свойства.

    В следующем примере кода показано, что WMI в настоящее время не поддерживает классы ассоциаций с более чем двумя ссылочными свойствами.

    [Association : ToInstance] 
    class MyAssocClass
    {
        ClassX ref PathToClassX ;
        ClassY ref PathToClassY ;
    };
    
  4. По завершении скомпилируйте код MOF с помощью компилятора MOF.

    Дополнительные сведения см. в о компиляции MOF-файлов.

Пример кода в шаге 3 определяет класс ассоциации MyAssocClass. Класс MyAssocClass определяет связь между ClassX и ClassY. Свойства PathToClassX и PathToClassY содержат объектные пути к экземплярам классов, которые должны быть ассоциированы. Ключевое слово ToInstance является одним из нескольких идентификаторов, которые WMI задает для предоставления информации об использовании квалификатора. Ключевое слово ToInstance указывает, что WMI должен распространять квалификатор Association на все экземпляры ассоциативного класса. Проверяя данный квалификатор экземпляра, клиентское программное обеспечение может определить, что этот экземпляр принадлежит классу ассоциации, без необходимости извлекать определение класса для поиска квалификатора Ассоциация. Дополнительные сведения см. в разделе Описание квалификатора и его особенностей и в разделе Ссылки.

проектирование классов управляемого формата объектов (MOF)