FeatureManager - класс
Управляет поставщиками компонентов и соединительными элементами.
Иерархия наследования
System.Object
Microsoft.Windows.Design.Features.FeatureManager
Пространство имен: Microsoft.Windows.Design.Features
Сборка: Microsoft.Windows.Design.Extensibility (в Microsoft.Windows.Design.Extensibility.dll)
Синтаксис
'Декларация
Public Class FeatureManager _
Implements IDisposable
public class FeatureManager : IDisposable
public ref class FeatureManager : IDisposable
type FeatureManager =
class
interface IDisposable
end
public class FeatureManager implements IDisposable
Тип FeatureManager предоставляет следующие члены.
Конструкторы
Имя | Описание | |
---|---|---|
FeatureManager | Инициализирует новый экземпляр класса FeatureManager. |
В начало страницы
Свойства
Имя | Описание | |
---|---|---|
Context | Возвращает контекст редактирования диспетчера функций. | |
MetadataProvider | Получает или задает настраиваемый поставщик метаданных, который может предоставить метаданные типа для данного диспетчера функций. | |
PendingConnectors | Возвращает перечисление всех функциональных соединителей, которые пока не были активированы, так как они ожидают появления элементов контекста или служб. | |
RunningConnectors | Возвращает перечисление всех работающих в данный момент функциональных соединителей. |
В начало страницы
Методы
Имя | Описание | |
---|---|---|
CreateFeatureProviders(Type) | Создает и возвращает набор поставщиков функций указанного типа. | |
CreateFeatureProviders(Type, Predicate<Type>) | Создает и возвращает набор поставщиков функций указанного типа. | |
CreateFeatureProviders(Type, Type) | Создает и возвращает набор имеющихся поставщиков функций указанного типа. | |
CreateFeatureProviders(Type, Type, Predicate<Type>) | Создает и возвращает набор имеющихся поставщиков функций указанного типа. | |
Dispose() | Освобождает все ресурсы, используемые диспетчером FeatureManager. | |
Dispose(Boolean) | Освобождает все работающие функциональные соединители. | |
Equals | Определяет, равен ли заданный объект Object текущему объекту Object. (Унаследовано от Object.) | |
Finalize | Метод завершения, который вызывает метод Dispose. (Переопределяет Object.Finalize().) | |
GetCustomAttributes | Перечисляет атрибуты указанного типа. | |
GetHashCode | Играет роль хэш-функции для определенного типа. (Унаследовано от Object.) | |
GetType | Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.) | |
InitializeFeatures | Инициализирует все функциональные соединители, определенные для поставщиков функций указанного типа. | |
MemberwiseClone | Создает неполную копию текущего объекта Object. (Унаследовано от Object.) | |
OnFeatureAvailable | Создает событие FeatureAvailable. | |
ToString | Возвращение строки, представляющей текущий объект. (Унаследовано от Object.) |
В начало страницы
События
Имя | Описание | |
---|---|---|
FeatureAvailable | Возникает при появлении нового типа функций. |
В начало страницы
Методы расширения
Имя | Описание | |
---|---|---|
CreateFeatureProviders(Type, ModelItem) | Перегружен. Создает поставщики функций указанного типа и элемента модели. (Определено в FeatureExtensions.) | |
CreateFeatureProviders(Type, ModelItem, Predicate<Type>) | Перегружен. Создает поставщики функций указанного типа и элемента модели. (Определено в FeatureExtensions.) |
В начало страницы
Заметки
Класс 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);
}
}
Потокобезопасность
Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.
См. также
Ссылки
Microsoft.Windows.Design.Features - пространство имен
FeatureConnector<TFeatureProviderType>
Другие ресурсы
Практическое руководство. Создание пользовательского соединительного элемент