Импорт редактора
Вы можете импортировать ряд служб редактора, фабрик и брокеров, которые предоставляют расширение с различными видами доступа к основному редактору. Например, можно импортировать ITextStructureNavigatorSelectorService ITextStructureNavigator предоставленный тип контента. (Этот навигатор позволяет выполнять различные виды поиска в текстовом буфере.)
Чтобы использовать импорт редактора, импортируйте его в качестве поля или свойства класса, который экспортирует часть компонента Managed Extensibility Framework.
Примечание.
Дополнительные сведения об управляемой платформе расширяемости см. в разделе "Управляемая платформа расширяемости" (MEF).
Синтаксис импорта
В следующем примере показано, как импортировать службу фабрики параметров редактора.
[Import]
internal IEditorOptionsFactoryService EditorOptions { get; set; }
Если вы хотите импортировать службу в качестве поля, а не свойства, необходимо задать его null
в объявлении, чтобы избежать предупреждений компилятора о том, что переменная не назначается:
[Import]
internal IEditorOptionsFactoryService m_editorOptions = null;
Дополнительные примеры использования импорта см. в следующих пошаговом руководстве.
Импорт поставщика услуг
Вы также можете импортировать ( SVsServiceProvider найденную в сборке Microsoft.VisualStudio.Shell.Immutable.10.0) таким же образом, чтобы получить доступ к службам Visual Studio:
[Import]
internal SVsServiceProvider ServiceProvider = null;
Дополнительные сведения см . в пошаговом руководстве. Доступ к объекту DTE из расширения редактора.
Службы
Службы редакторов обычно являются отдельными сущностями, которые предоставляют службу и совместно используются для нескольких компонентов.
Другие импорты
Фабрики поставщиков и брокеры обычно являются сущностями, которые могут иметь несколько экземпляров в нескольких компонентах.
Import | Предоставляет |
---|---|
IErrorProviderFactory | ErrorTagТип SimpleTagger<T> ) для заданного буфера. |
ITextMarkerProviderFactory | Тег маркера текста ( SimpleTagger<T> тип TextMarkerTag). |
IToolTipProviderFactory | Для IToolTipProvider заданного ITextView. |
ICompletionBroker | Объект ICompletionSession. |
IQuickInfoBroker | Объект IQuickInfoSession. |
ISignatureHelpBroker | Объект ISignatureHelpSession. |