다음을 통해 공유


FeatureConnector<TFeatureProviderType> 클래스

모든 기능 커넥터 기반 확장성의 기본 구현을 제공합니다.

상속 계층 구조

System.Object
  Microsoft.Windows.Design.Features.FeatureConnector<TFeatureProviderType>
    Microsoft.Windows.Design.Policies.PolicyDrivenFeatureConnector<TFeatureProviderType>

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

구문

‘선언
Public MustInherit Class FeatureConnector(Of TFeatureProviderType As FeatureProvider) _
    Implements IDisposable
public abstract class FeatureConnector<TFeatureProviderType> : IDisposable
where TFeatureProviderType : FeatureProvider
generic<typename TFeatureProviderType>
where TFeatureProviderType : FeatureProvider
public ref class FeatureConnector abstract : IDisposable
[<AbstractClass>]
type FeatureConnector<'TFeatureProviderType when 'TFeatureProviderType : FeatureProvider> =  
    class
        interface IDisposable
    end
JScript에서는 제네릭 형식이나 메서드를 지원하지 않습니다.

Type 매개 변수

  • TFeatureProviderType
    기능 공급자의 형식입니다.

FeatureConnector<TFeatureProviderType> 형식에서는 다음과 같은 멤버를 노출합니다.

생성자

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

위쪽

속성

  이름 설명
Protected 속성 Context 기능 커넥터의 편집 컨텍스트를 가져옵니다.
Protected 속성 Manager 기능 커넥터의 FeatureManager를 가져옵니다.

위쪽

메서드

  이름 설명
Protected 메서드 CreateFeatureProviders(Type) 제공된 형식에 따라 기능 커넥터에 연결된 기능 공급자의 새 목록을 만듭니다.
Protected 메서드 CreateFeatureProviders<TSubtype>(Type) 제공된 형식 및 하위 형식에 따라 기능 커넥터에 연결된 기능 공급자의 새 목록을 만듭니다.
Public 메서드 Dispose() FeatureConnector<TFeatureProviderType> 에서 사용하는 모든 리소스를 해제합니다.
Protected 메서드 Dispose(Boolean) FeatureConnector<TFeatureProviderType> 에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.
Public 메서드 Equals 지정한 Object가 현재 Object와 같은지 여부를 확인합니다. (Object에서 상속됨)
Protected 메서드 Finalize 가비지 수집에서 회수하기 전에 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object.Finalize()을(를) 재정의함)
Public 메서드 GetHashCode 특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드 GetType 현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Protected 메서드 MemberwiseClone 현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드 ToString 현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)

위쪽

설명

WPF Designer와 가장 깊은 수준에서 통합해야 하는 경우 추상 FeatureConnector<TFeatureProviderType> 클래스에서 파생합니다. 기능 커넥터는 전역 서비스에 등록하거나 자체 서비스를 추가할 수 있습니다.

기능 공급자는 FeatureConnectorAttribute를 사용하여 연결된 기능 커넥터를 지정합니다.

FeatureConnector<TFeatureProviderType> 기본 클래스는 제네릭이며, FeatureConnector<TFeatureProviderType>에서 호스팅하는 기능 공급자의 형식을 사용합니다.

기능 커넥터는 요청 시 만들어집니다. FeatureManager 클래스에서 FeatureProviderFeatureConnectorAttribute를 찾으면 지정된 FeatureConnector<TFeatureProviderType>가 없는 경우 이를 만듭니다.

추상 FeatureConnector<TFeatureProviderType> 클래스는 단순한 정리 작업을 구현하는 IDisposable 인터페이스를 구현합니다.

FeatureConnector<TFeatureProviderType> 클래스의 기능 중 대부분은 보호된 CreateFeatureProviders 메서드에서 구현됩니다. 이 메서드에 개체를 전달하면 기능 커넥터에서 개체의 FeatureAttribute 형식을 찾습니다. 이러한 특성이 발견되면 각 특성에 연결된 FeatureProvider 인스턴스가 만들어지고 목록으로 반환됩니다.

예제

다음 코드 예제에서는 FeatureConnector<TFeatureProviderType> 클래스에서 파생하여 DiagnosticsMenuProvider라는 사용자 지정 기능 공급자와 IDiagnosticsService라는 사용자 지정 서비스를 연결하는 방법을 보여 줍니다. 전체 코드는 방법: 사용자 지정 기능 커넥터 만들기를 참조하십시오.

' The IDiagnosticsService specifies a simple interface for showing
' a FeatureManagerDiagnostics window.
Interface IDiagnosticsService
    Sub ShowWindow() 
End Interface


...


' The DiagnosticsFeatureConnector publishes the IDiagnosticsService. 
Class DiagnosticsFeatureConnector
    Inherits FeatureConnector(Of DiagnosticsMenuProvider)
    Implements IDiagnosticsService

    Dim fmdWindow As FeatureManagerDiagnostics

    Public Sub New(ByVal manager As FeatureManager) 
        MyBase.New(manager)

        Context.Services.Publish(Of IDiagnosticsService)(Me)

    End Sub

    ' The showWindow method creates a FeatureManagerDiagnostics
    ' window and shows it.
    Public Sub ShowWindow() Implements IDiagnosticsService.ShowWindow

        If fmdWindow IsNot Nothing Then

            ' Show the FeatureManagerDiagnostics window.
            fmdWindow.Show()

            ' Activate the 
            fmdWindow.Activate()

        Else

            fmdWindow = New FeatureManagerDiagnostics()
            fmdWindow.Initialize(Manager)
            AddHandler fmdWindow.Closed, AddressOf fmdWindow_Closed
            fmdWindow.Show()

        End If

    End Sub

    Sub fmdWindow_Closed(ByVal sender As Object, ByVal e As EventArgs)

        fmdWindow = Nothing

    End Sub

End Class
// The IDiagnosticsService specifies a simple interface for showing
// a FeatureManagerDiagnostics window.
interface IDiagnosticsService 
{
    void ShowWindow();
}


...


// The DiagnosticsFeatureConnector publishes the IDiagnosticsService. 
class DiagnosticsFeatureConnector : FeatureConnector<DiagnosticsMenuProvider>,
    IDiagnosticsService 
{
    FeatureManagerDiagnostics fmdWindow;

    public DiagnosticsFeatureConnector(FeatureManager manager)
        : base(manager) 
    {
        Context.Services.Publish<IDiagnosticsService>(this);
    }

    #region IDiagnosticsService Members

    // The showWindow method creates a FeatureManagerDiagnostics
    // window and shows it.
    public void ShowWindow() 
    {
        if (fmdWindow != null) 
        {
            fmdWindow.Show();
            fmdWindow.Activate();
        }
        else 
        {
            fmdWindow = new FeatureManagerDiagnostics();
            fmdWindow.Initialize(Manager);
            fmdWindow.Closed += new EventHandler(fmdWindow_Closed); 
            fmdWindow.Show();
        }
    }

    void fmdWindow_Closed(object sender, EventArgs e)
    {
        fmdWindow = null; 
    }

    #endregion
}

스레드로부터의 안전성

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

참고 항목

참조

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

FeatureManager

FeatureProvider

FeatureConnectorAttribute

기타 리소스

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

기능 공급자 및 기능 커넥터

WPF Designer 확장성 이해