연결 클래스 선언

연결 클래스는 다른 두 클래스 간의 관계를 정의하는 특수 형식의 클래스입니다.

다음 절차에서는 MOF 코드를 사용하여 연결 클래스를 만드는 방법을 설명합니다.

MOF 코드를 사용하여 연결 클래스 만들기

  1. 연결 한정자를 클래스에 할당합니다.

    개체 또는 클래스에 대한 참조를 사용하여 클래스를 만들 수 있지만 연결 한정자를 사용하면 클래스가 연결 클래스임을 분명히 할 뿐만 아니라 클래스가 연결 클래스로 완벽하게 작동하도록 하는 것이 좋습니다.

  2. ref 형식을 사용해 함께 연결하려는 두 개체 인스턴스를 설명하는 두 개의 참조를 클래스 내에 만듭니다.

    참조는 개체에 대한 경로를 포함해 연결의 두 개체를 바인딩합니다. 필수는 아니지만 참조 속성도 키 속성으로 사용합니다.

    정규화된 참조 또는 네임스페이스 상대 참조를 만들 수 있지만 WMI는 네임스페이스 간 참조에 대한 지원으로만 제한됩니다. 특히 정적으로 정의된 개체만 네임스페이스 경계에서 서로를 참조할 수 있습니다. 즉 동적으로 지원되는 개체는 서로를 참조할 수 없습니다.

    필요한 경우 개체 ref 형식과 함께 HasClassRefClassref 한정자를 사용해 클래스를 참조합니다.

    WMI는 인스턴스에 대한 ref 참조 지점 하나와 클래스에 대한 다른 개체 참조 지점을 사용할 수 있습니다. 이 경우 연결 클래스는 인스턴스를 클래스에 바인딩하는 연결을 설명합니다.

    다음 코드 예제에서는 개체 형식으로 HasClassRefClassref를 사용하기 위한 구문을 설명합니다.

    [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 클래스는 ClassXClassY 간의 관계를 정의합니다. PathToClassXPathToClassY 속성에는 연결할 클래스의 인스턴스에 대한 개체 경로가 포함됩니다. ToInstance 키워드는 WMI가 한정자 사용에 대한 정보를 제공하기 위해 정의하는 몇 가지 버전 플래그 중 하나입니다. ToInstance 키워드는 WMI가 연결 한정자를 연결 클래스의 모든 인스턴스에 전파해야 했음을 나타냅니다. 클라이언트 소프트웨어는 이 인스턴스 한정자를 확인하여 연결 한정자를 찾기 위해 클래스 정의를 검색할 필요 없이 인스턴스가 연결 클래스에 속하는지 확인할 수 있습니다. 자세한 내용은 한정자 특성을 사용해 한정자 설명참고자료를 참조하세요.

MOF(Managed Object Format) 클래스 디자인