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 - пространство имен

FeatureManager

FeatureProvider

FeatureConnectorAttribute

Другие ресурсы

Практическое руководство. Создание пользовательского соединительного элемент

Поставщики функций и соединительные элементы

Общее представление о расширяемости конструктора WPF