Düzenleyici içeri aktarıyor
Uzantınıza çekirdek düzenleyiciye farklı türlerde erişim sağlayan bir dizi düzenleyici hizmetini, fabrikayı ve aracıyı içeri aktarabilirsiniz. Örneğin, belirli bir içerik türü için bir ITextStructureNavigator sağlamak üzere öğesini içeri aktarabilirsinizITextStructureNavigatorSelectorService. (Bu gezgin, metin arabelleğinde farklı türlerde aramalar yapmanıza olanak tanır.)
Düzenleyici içeri aktarmayı kullanmak için, bunu Yönetilen Genişletilebilirlik Çerçevesi bileşen bölümünü dışarı aktaran bir sınıfın alanı veya özelliği olarak içeri aktarırsınız.
Dekont
Yönetilen Genişletilebilirlik Çerçevesi hakkında daha fazla bilgi için bkz . Yönetilen Genişletilebilirlik Çerçevesi (MEF).
Söz dizimlerini içeri aktarma
Aşağıdaki örnekte düzenleyici seçenekleri fabrika hizmetinin nasıl içeri aktarılacağını gösterilmektedir.
[Import]
internal IEditorOptionsFactoryService EditorOptions { get; set; }
Hizmeti bir özellik olarak değil alan olarak içeri aktarmak istiyorsanız, bir değişkene null
atamama konusunda derleyici uyarılarından kaçınmak için bildiriminde olarak ayarlamanız gerekir:
[Import]
internal IEditorOptionsFactoryService m_editorOptions = null;
İçeri aktarmaları kullanma hakkında daha fazla örnek için aşağıdaki kılavuzlara bakın:
Hizmet sağlayıcısını içeri aktarma
Visual Studio hizmetlerine erişmek için aynı şekilde bir SVsServiceProvider öğesini de içeri aktarabilirsiniz (Microsoft.VisualStudio.Shell.Immutable.10.0 derlemesinde bulunur):
[Import]
internal SVsServiceProvider ServiceProvider = null;
Daha fazla bilgi için bkz . İzlenecek yol: Düzenleyici uzantısından DTE nesnesine erişme.
Hizmetler
Düzenleyici hizmetleri genellikle bir hizmet sağlayan ve birden çok bileşen arasında paylaşılan tek varlıklardır.
Diğer içeri aktarmalar
Sağlayıcı fabrikaları ve aracıları genellikle birden çok bileşende birden çok örneği olabilecek varlıklardır.
Import | Sağ -lar |
---|---|
IErrorProviderFactory | SimpleTagger<T> Verilen arabellek için türünde ErrorTag) . |
ITextMarkerProviderFactory | Metin işaretçisi etiketleyicisi (türünde TextMarkerTagbir SimpleTagger<T> ). |
IToolTipProviderFactory | IToolTipProvider Belirli ITextViewbir için bir . |
ICompletionBroker | Bir ICompletionSession. |
IQuickInfoBroker | Bir IQuickInfoSession. |
ISignatureHelpBroker | Bir ISignatureHelpSession. |