编辑器导入
可以导入许多编辑器服务、工厂和代理,这些服务为扩展提供对核心编辑器的不同类型的访问权限。 例如,可以导入 ITextStructureNavigatorSelectorService 为给定内容类型提供的内容 ITextStructureNavigator 。 (此导航器允许对文本缓冲区执行不同类型的搜索。
若要使用编辑器导入,请将其导入为导出托管扩展性框架组件部件的类的字段或属性。
注意
有关托管扩展性框架的详细信息,请参阅托管扩展性框架(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 对象。
服务
编辑器服务通常是提供服务的单个实体,可在多个组件之间共享。
其他导入
提供程序工厂和代理通常是可以在多个组件中具有多个实例的实体。