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 не поддерживает универсальные типы и методы.
Параметры типа
- 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.) |
В начало страницы
Заметки
Наследование от базового класса FeatureConnector<TFeatureProviderType> осуществляется при необходимости реализации максимальной глубокой интеграции с сред. Конструктор WPF. Соединительные элементы могут подписываться на глобальные службы и могут добавлять свои собственные службы.
Для указания соответствующего функционального соединителя в поставщиках функций используется атрибут FeatureConnectorAttribute.
Базовый класс FeatureConnector<TFeatureProviderType> является универсальным и принимает тип поставщика функций, который размещает FeatureConnector<TFeatureProviderType>.
Соединительные элементы создаются по запросу. Если класс FeatureManager обнаруживает атрибут FeatureConnectorAttribute у поставщика FeatureProvider, то он создает указанный им соединитель 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 (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.
См. также
Ссылки
Microsoft.Windows.Design.Features - пространство имен
Другие ресурсы
Практическое руководство. Создание пользовательского соединительного элемент