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> 형식에서는 다음과 같은 멤버를 노출합니다.
생성자
이름 | 설명 | |
---|---|---|
FeatureConnector<TFeatureProviderType> | FeatureConnector<TFeatureProviderType> 클래스의 새 인스턴스를 초기화합니다. |
위쪽
속성
이름 | 설명 | |
---|---|---|
Context | 기능 커넥터의 편집 컨텍스트를 가져옵니다. | |
Manager | 기능 커넥터의 FeatureManager를 가져옵니다. |
위쪽
메서드
이름 | 설명 | |
---|---|---|
CreateFeatureProviders(Type) | 제공된 형식에 따라 기능 커넥터에 연결된 기능 공급자의 새 목록을 만듭니다. | |
CreateFeatureProviders<TSubtype>(Type) | 제공된 형식 및 하위 형식에 따라 기능 커넥터에 연결된 기능 공급자의 새 목록을 만듭니다. | |
Dispose() | FeatureConnector<TFeatureProviderType> 에서 사용하는 모든 리소스를 해제합니다. | |
Dispose(Boolean) | FeatureConnector<TFeatureProviderType> 에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다. | |
Equals | 지정한 Object가 현재 Object와 같은지 여부를 확인합니다. (Object에서 상속됨) | |
Finalize | 가비지 수집에서 회수하기 전에 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object.Finalize()을(를) 재정의함) | |
GetHashCode | 특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨) | |
GetType | 현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨) | |
MemberwiseClone | 현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨) | |
ToString | 현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨) |
위쪽
설명
WPF Designer와 가장 깊은 수준에서 통합해야 하는 경우 추상 FeatureConnector<TFeatureProviderType> 클래스에서 파생합니다. 기능 커넥터는 전역 서비스에 등록하거나 자체 서비스를 추가할 수 있습니다.
기능 공급자는 FeatureConnectorAttribute를 사용하여 연결된 기능 커넥터를 지정합니다.
FeatureConnector<TFeatureProviderType> 기본 클래스는 제네릭이며, FeatureConnector<TFeatureProviderType>에서 호스팅하는 기능 공급자의 형식을 사용합니다.
기능 커넥터는 요청 시 만들어집니다. FeatureManager 클래스에서 FeatureProvider의 FeatureConnectorAttribute를 찾으면 지정된 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 네임스페이스