다음을 통해 공유


FeatureManager 클래스

기능 공급자 및 기능 커넥터를 관리합니다.

상속 계층 구조

System.Object
  Microsoft.Windows.Design.Features.FeatureManager

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

구문

‘선언
Public Class FeatureManager _
    Implements IDisposable
public class FeatureManager : IDisposable
public ref class FeatureManager : IDisposable
type FeatureManager =  
    class
        interface IDisposable
    end
public class FeatureManager implements IDisposable

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

생성자

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

위쪽

속성

  이름 설명
Public 속성 Context 이 기능 관리자의 편집 컨텍스트를 가져옵니다.
Public 속성 MetadataProvider 이 기능 관리자에 대한 형식 메타데이터를 제공할 수 있는 사용자 지정 메타데이터 공급자를 가져오거나 설정합니다.
Public 속성 PendingConnectors 컨텍스트 항목 또는 서비스를 대기하는 중이므로 아직 활성화되지 않은 모든 커넥터의 열거형을 가져옵니다.
Public 속성 RunningConnectors 현재 실행 중인 모든 커넥터의 열거형을 가져옵니다.

위쪽

메서드

  이름 설명
Public 메서드 CreateFeatureProviders(Type) 지정된 형식의 기능 공급자 집합을 만들어 반환합니다.
Public 메서드 CreateFeatureProviders(Type, Predicate<Type>) 지정된 형식의 기능 공급자 집합을 만들어 반환합니다.
Public 메서드 CreateFeatureProviders(Type, Type) 지정된 형식에 해당하는 기능 공급자 집합을 만들어 반환합니다.
Public 메서드 CreateFeatureProviders(Type, Type, Predicate<Type>) 지정된 형식에 해당하는 기능 공급자 집합을 만들어 반환합니다.
Public 메서드 Dispose() FeatureManager 에서 사용하는 모든 리소스를 해제합니다.
Protected 메서드 Dispose(Boolean) 실행 중인 모든 기능 커넥터를 삭제합니다.
Public 메서드 Equals 지정한 Object가 현재 Object와 같은지 여부를 확인합니다. (Object에서 상속됨)
Protected 메서드 Finalize Dispose 를 호출하는 종료자입니다. (Object.Finalize()을(를) 재정의함)
Public 메서드 GetCustomAttributes 지정된 형식의 특성을 열거합니다.
Public 메서드 GetHashCode 특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드 GetType 현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드 InitializeFeatures 지정된 형식에 정의된 기능 공급자의 기능 커넥터를 모두 초기화합니다.
Protected 메서드 MemberwiseClone 현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Protected 메서드 OnFeatureAvailable FeatureAvailable 이벤트를 발생시킵니다.
Public 메서드 ToString 현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)

위쪽

이벤트

  이름 설명
Public 이벤트 FeatureAvailable 새 기능 형식을 사용할 수 있을 때 발생합니다.

위쪽

확장 메서드

  이름 설명
Public 확장 메서드 CreateFeatureProviders(Type, ModelItem) 오버로드되었습니다. 지정된 형식 및 모델 항목의 기능 공급자를 만듭니다. (FeatureExtensions에서 정의됨)
Public 확장 메서드 CreateFeatureProviders(Type, ModelItem, Predicate<Type>) 오버로드되었습니다. 지정된 형식 및 모델 항목의 기능 공급자를 만듭니다. (FeatureExtensions에서 정의됨)

위쪽

설명

FeatureManager 클래스를 사용하여 기능 공급자를 만들고 실행 중이거나 보류 중인 기능 커넥터를 쿼리할 수 있습니다.

기능 커넥터를 인스턴스화해야 하지만 아직 존재하지 않는 서비스나 컨텍스트 항목에 등록해야 하는 경우 커넥터 형식이 보류 목록에 포함되고 편집 컨텍스트에 등록이 추가됩니다. 해당 서비스 및 항목을 사용할 수 있게 되면 기능 커넥터가 인스턴스화됩니다.

개체가 편집 모델에 추가되면 편집 도구에서 기능 관리자에 대해 InitializeFeatures 메서드를 호출하여 개체의 기능 특성을 검사해야 합니다. 기능 관리자는 이러한 특성을 FeatureConnector<TFeatureProviderType> 특성과 일치시키고 모든 고유 커넥터가 인스턴스화되었는지 확인합니다.

예제

다음 샘플 코드에서는 FeatureManager 클래스를 사용하여 실행 중인 커넥터와 보류 중인 커넥터에 액세스하는 방법을 보여 줍니다. 전체 코드는 방법: 사용자 지정 기능 커넥터 만들기를 참조하십시오.

Public Sub Initialize(ByVal manager As FeatureManager)
    featManager = manager
    Bind()
End Sub


...


' Binds the activatedFeatures and pendingFeatures controls
' the FeatureManager's RunningConnectors and PendingConnectors\
' properties.
Private Sub Bind()
    activatedFeatures.Items.Clear()
    pendingFeatures.Items.Clear()

    Dim info As FeatureConnectorInformation
    For Each info In featManager.RunningConnectors
        activatedFeatures.Items.Add(info)
    Next info

    For Each info In featManager.PendingConnectors
        pendingFeatures.Items.Add(info)
    Next info

End Sub
public void Initialize(FeatureManager manager) 
{
    featManager = manager;
    Bind();
}


...


// Binds the activatedFeatures and pendingFeatures controls
// the FeatureManager's RunningConnectors and PendingConnectors\
// properties.
private void Bind() 
{
    activatedFeatures.Items.Clear();
    pendingFeatures.Items.Clear();

    foreach (FeatureConnectorInformation info in 
        featManager.RunningConnectors) 
    {
        activatedFeatures.Items.Add(info);
    }

    foreach (FeatureConnectorInformation info in 
        featManager.PendingConnectors) 
    {
        pendingFeatures.Items.Add(info);
    }
}

스레드로부터의 안전성

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

참고 항목

참조

Microsoft.Windows.Design.Features 네임스페이스

FeatureProvider

FeatureConnector<TFeatureProviderType>

기타 리소스

방법: 사용자 지정 기능 커넥터 만들기

기능 공급자 및 기능 커넥터

WPF Designer 확장성 이해