다음을 통해 공유


RequirementAttribute 클래스

RequirementValidator 클래스에 사용되는 특성을 정의합니다.

상속 계층 구조

System.Object
  System.Attribute
    Microsoft.Windows.Design.RequirementAttribute
      Microsoft.Windows.Design.Policies.UsesItemPolicyAttribute
      Microsoft.Windows.Design.RequiresContextItemAttribute
      Microsoft.Windows.Design.RequiresServiceAttribute

네임스페이스:  Microsoft.Windows.Design
어셈블리:  Microsoft.Windows.Design.Extensibility(Microsoft.Windows.Design.Extensibility.dll)

구문

‘선언
Public MustInherit Class RequirementAttribute _
    Inherits Attribute
public abstract class RequirementAttribute : Attribute
public ref class RequirementAttribute abstract : public Attribute
[<AbstractClass>]
type RequirementAttribute =  
    class
        inherit Attribute
    end
public abstract class RequirementAttribute extends Attribute

RequirementAttribute 형식에서는 다음과 같은 멤버를 노출합니다.

생성자

  이름 설명
Protected 메서드 RequirementAttribute RequirementAttribute 클래스의 새 인스턴스를 초기화합니다.

위쪽

속성

  이름 설명
Public 속성 AllRequired 같은 형식의 모든 요구 사항 특성이 필요한지 여부를 나타내는 값을 가져옵니다.
Public 속성 TypeId 파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다. (Attribute에서 상속됨)

위쪽

메서드

  이름 설명
Public 메서드 CreateSubscription 이 특성에 들어 있는 요구 사항이 변경될 때 알림을 받는 데 사용할 수 있는 RequirementSubscription 개체를 반환합니다.
Public 메서드 Equals 인프라입니다. 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (Attribute에서 상속됨)
Protected 메서드 Finalize 가비지 수집에서 회수하기 전에 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드 GetHashCode 이 인스턴스에 대한 해시 코드를 반환합니다. (Attribute에서 상속됨)
Public 메서드 GetType 현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드 IsDefaultAttribute 파생 클래스에서 재정의된 경우 이 인스턴스의 값이 파생 클래스의 기본값인지 여부를 나타냅니다. (Attribute에서 상속됨)
Public 메서드 Match 파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (Attribute에서 상속됨)
Public 메서드 MeetsRequirement EditingContext 가 이 특성에 지정된 요구 사항에 맞는지 확인합니다.
Protected 메서드 MemberwiseClone 현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드 ToString 현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)

위쪽

명시적 인터페이스 구현

  이름 설명
명시적 인터페이스 구현Private 메서드 _Attribute.GetIDsOfNames 이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다. (Attribute에서 상속됨)
명시적 인터페이스 구현Private 메서드 _Attribute.GetTypeInfo 인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다. (Attribute에서 상속됨)
명시적 인터페이스 구현Private 메서드 _Attribute.GetTypeInfoCount 개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1). (Attribute에서 상속됨)
명시적 인터페이스 구현Private 메서드 _Attribute.Invoke 개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다. (Attribute에서 상속됨)

위쪽

설명

추상 RequirementAttribute 클래스에서 파생하여 기능 공급자 및 기능 커넥터의 요구 사항을 지정합니다.

RequirementValidator에서는 RequirementAttribute 특성의 형식을 검사합니다. 발견되는 각 RequirementAttribute에 대해 추상 MeetsRequirement 메서드가 호출되고 EditingContext 클래스의 인스턴스가 전달됩니다. RequiresServiceAttribute와 같은 클래스는 RequirementAttribute에서 파생되며 컨텍스트가 지정된 요구 사항에 맞는지 확인합니다.

이러한 시스템으로 인해 디자이너는 편집 컨텍스트에서 제대로 실행되는 코드만 활성화할 수 있습니다.

RequirementAttribute에서 파생하여 사용자 지정 요구 사항을 정의하고 추상 MeetsRequirement 메서드를 구현합니다.

예제

다음 코드 예제에서는 RequirementAttribute에서 파생되는 UsesItemPolicyAttribute를 사용하여 기능 공급자에 사용자 지정 서로게이트 정책을 연결하는 방법을 보여 줍니다. 전체 코드 목록을 보려면 방법: 서로게이트 정책 만들기을 참조하십시오.

' The DockPanelAdornerProvider class implements an adorner
' that you can use to set the Margin property by using a 
' drag operation. The DockPanelPolicy class enables a 
' container policy for offering additional tasks and 
' adorners on the panel's children.
<UsesItemPolicy(GetType(DockPanelPolicy))>  _
Class DockPanelAdornerProvider
    Inherits AdornerProvider

    Public Sub New() 
        ' The adorner is a Rectangle element.
        Dim r As New Rectangle()
        r.Width = 23.0
        r.Height = 23.0
        r.Fill = AdornerColors.GlyphFillBrush

        ' Set the rectangle's placement in the adorner panel.
        AdornerPanel.SetAdornerHorizontalAlignment(r, AdornerHorizontalAlignment.OutsideLeft)
        AdornerPanel.SetAdornerVerticalAlignment(r, AdornerVerticalAlignment.OutsideTop)

        Dim p As New AdornerPanel()
        p.Children.Add(r)

        AdornerPanel.SetTask(r, New DockPanelMarginTask())

        Adorners.Add(p)
    End Sub
End Class
// The DockPanelAdornerProvider class implements an adorner
// that you can use to set the Margin property by using a 
// drag operation. The DockPanelPolicy class enables a 
// container policy for offering additional tasks and 
// adorners on the panel's children.
[UsesItemPolicy(typeof(DockPanelPolicy))]
class DockPanelAdornerProvider : AdornerProvider
{
    public DockPanelAdornerProvider() 
    {
        // The adorner is a Rectangle element.
        Rectangle r = new Rectangle();
        r.Width = 23.0;
        r.Height = 23.0;
        r.Fill = AdornerColors.GlyphFillBrush;

        // Set the rectangle's placement in the adorner panel.
        AdornerPanel.SetAdornerHorizontalAlignment(r, AdornerHorizontalAlignment.OutsideLeft);
        AdornerPanel.SetAdornerVerticalAlignment(r, AdornerVerticalAlignment.OutsideTop);

        AdornerPanel p = new AdornerPanel();
        p.Children.Add(r);

        AdornerPanel.SetTask(r, new DockPanelMarginTask());

        Adorners.Add(p);
    }
} 

스레드로부터의 안전성

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

참고 항목

참조

Microsoft.Windows.Design 네임스페이스

RequiresContextItemAttribute

RequiresServiceAttribute

UsesItemPolicyAttribute

기타 리소스

방법: 서로게이트 정책 만들기

WPF Designer 확장성 이해