Importações do editor
Você pode importar vários serviços de editor, fábricas e corretores que fornecem à sua extensão diferentes tipos de acesso ao editor principal. Por exemplo, você pode importar o ITextStructureNavigatorSelectorService para fornecer um para um determinado tipo de ITextStructureNavigator conteúdo. (Este navegador permite que você execute diferentes tipos de pesquisas em um buffer de texto.)
Para usar uma importação de editor, importe-a como um campo ou propriedade de uma classe que exporta uma parte do componente Managed Extensibility Framework.
Observação
Para obter mais informações sobre o Managed Extensibility Framework, consulte Managed Extensibility Framework (MEF).
Sintaxe de importação
O exemplo a seguir mostra como importar o serviço de fábrica de opções do editor.
[Import]
internal IEditorOptionsFactoryService EditorOptions { get; set; }
Se você deseja importar o serviço como um campo e não uma propriedade, você deve defini-lo como null
na declaração para evitar os avisos do compilador sobre não atribuir a uma variável:
[Import]
internal IEditorOptionsFactoryService m_editorOptions = null;
Para obter mais exemplos de uso de importações, consulte as seguintes instruções passo a passo:
Importar o provedor de serviços
Você também pode importar um SVsServiceProvider (encontrado no assembly Microsoft.VisualStudio.Shell.Immutable.10.0) da mesma maneira para obter acesso aos serviços do Visual Studio:
[Import]
internal SVsServiceProvider ServiceProvider = null;
Consulte Demonstra Passo a passo: Acessar o objeto DTE de uma extensão de editor para obter mais informações.
Serviços
Os serviços de editor geralmente são entidades únicas que fornecem um serviço e são compartilhados entre vários componentes.
Outras importações
As fábricas e corretoras de provedores geralmente são entidades que podem ter várias instâncias em vários componentes.
Import | Fornece |
---|---|
IErrorProviderFactory | A SimpleTagger<T> do tipo ErrorTag) para o buffer dado. |
ITextMarkerProviderFactory | Um tagger de marcador de texto (a SimpleTagger<T> do tipo TextMarkerTag). |
IToolTipProviderFactory | Um IToolTipProvider para um dado ITextView. |
ICompletionBroker | Um ICompletionSession. |
IQuickInfoBroker | Um IQuickInfoSession. |
ISignatureHelpBroker | Um ISignatureHelpSession. |