您可以导入提供该扩展以不同的类型设置为核心编辑器的访问的编辑服务、工厂和代理。 例如,可以导入 ITextStructureNavigatorSelectorService 提供了 ITextStructureNavigator 为特定内容类型。 (此浏览器允许您执行不同的类型在文本缓冲区的搜索。)
若要使用编辑导入,从中导入它作为导出 managed extensibility framework 由分部类的字段或属性。
备注
有关 managed extensibility framework 的更多信息,请参见 Managed Extensibility Framework (MEF)。
导入语法
下面的示例演示如何导入编辑器选项工厂服务。
[Import]
internal IEditorOptionsFactoryService EditorOptions { get; set; }
如果要导入服务用作字段而不是属性,则应将其设置为在声明中 null 以避免有关不分配的编译器警告给变量:
[Import]
internal IEditorOptionsFactoryService m_editorOptions = null;
有关更多示例导入,请参见以下演练:
导入服务提供程序
然后可以象也将导入到 Visual Studio 服务的一 SVsServiceProvider (找到程序集中 Microsoft.VisualStudio.Shell.Immutable.10.0) 获取访问:
[Import]
internal SVsServiceProvider ServiceProvider = null;
有关更多信息,请参见演练:访问 DTE 对象从编辑器扩展。
服务
编辑服务通常是一个服务的单个实体和在多个元素之间共享。
导入 |
提供 |
---|---|
文件扩展名和 IContentType 对象之间的关系。 |
|
IContentType 对象的集合。 |
|
许多编辑器适配器对象: |
|
给定文本视图的一 IIncrementalSearch 对象。 |
|
一个 ITextBuffer。 |
|
一个 ITextDocument。 |
|
差异的 IDifferenceCollection 。 |
|
的 IBufferGraph 设置 ITextBuffer 对象。 |
|
维护 IClassificationType 对象的集合。 |
|
文本缓冲区的 ITagAggregator 。 |
|
文本视图的 ITagAggregator 。 |
|
指定范围的 IEditorOptions 。 |
|
文本视图的 IScrollMap 。 |
|
通过 ISmartIndentProvider 对象获取自动缩进。 |
|
管理 IWpfTextView的 IWpfTextViewHost 。 |
|
生成 RTF 格式已从集的文本快照范围。 |
|
格式化文本行的 TextParagraphProperties 在视图。 |
|
ITextView的一 IEditorOperations 对象。 |
|
搜索一个文本快照。 |
|
文本视图的 IOutliningManager 。 |
|
标准标志符号集。 |
|
跟踪键盘处理。 |
|
标准 IClassificationType 对象。 |
|
维护文本缓冲区和 ITextUndoHistory 对象之间的关系。 |
其他导入
提供程序工厂和代理是可以在多个组件的多个实例的常规实体。
导入 |
提供 |
---|---|
SimpleTagger 给定缓冲区的类型 ErrorTag)。 |
|
文本标记 ( SimpleTagger 类型 TextMarkerTag)。 |
|
特定 ITextView的 IToolTipProvider 。 |
|