Поделиться через


FeatureManager - класс

Обновлен: Ноябрь 2007

Управляет поставщиками функций и функциональными соединителями.

Пространство имен:  Microsoft.Windows.Design.Features
Сборка:  Microsoft.Windows.Design.Extensibility (в Microsoft.Windows.Design.Extensibility.dll)

Синтаксис

'Декларация
Public Class FeatureManager _
    Implements IDisposable
'Применение
Dim instance As FeatureManager
public class FeatureManager : IDisposable
public ref class FeatureManager : IDisposable
public class FeatureManager implements IDisposable

Заметки

Класс 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);
    }
}

Иерархия наследования

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

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

FeatureManager - члены

Microsoft.Windows.Design.Features - пространство имен

FeatureProvider

FeatureConnector<TFeatureProviderType>

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

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

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

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