在VS 2012中导入SvsServiceProvider

时间:2013-06-26 17:06:10

标签: visual-studio-2012 code-snippets vs-extensibility

我是Visual Studio Extensibility的新手,我尝试从VS 2012 SDK(Displaying Statement Complete)实现一个Microsoft演练。我在演练中遇到一些课有些困难。问题是我收到一个SVsServiceProvider未定义的错误。我导入了Microsoft.VisualStudio.Shell

Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.ComponentModel.Composition
Imports System.Runtime.InteropServices
Imports Microsoft.VisualStudio
Imports Microsoft.VisualStudio.Editor
Imports Microsoft.VisualStudio.Language.Intellisense
Imports Microsoft.VisualStudio.OLE.Interop
Imports Microsoft.VisualStudio.Shell
Imports Microsoft.VisualStudio.Text
Imports Microsoft.VisualStudio.Text.Editor
Imports Microsoft.VisualStudio.TextManager.Interop
Imports Microsoft.VisualStudio.Utilities


<Export(GetType(IVsTextViewCreationListener))>
<Name("token completion handler")>
<ContentType("plaintext")> <TextViewRole(PredefinedTextViewRoles.Editable)>
Friend Class TestCompletionHandlerProvider
Implements IVsTextViewCreationListener

<Import()>
Friend AdapterService As IVsEditorAdaptersFactoryService = Nothing
<Import()>
Friend Property CompletionBroker() As ICompletionBroker
<Import()>
Friend Property ServiceProvider() As SVsServiceProvider

Public Sub VsTextViewCreated(ByVal textViewAdapter As IVsTextView) Implements IVsTextViewCreationListener.VsTextViewCreated
    Dim textView As ITextView = AdapterService.GetWpfTextView(textViewAdapter)
    If textView Is Nothing Then
        Return
    End If

    Dim createCommandHandler As Func(Of TestCompletionCommandHandler) = Function() New TestCompletionCommandHandler(textViewAdapter, textView, Me)
    textView.Properties.GetOrCreateSingletonProperty(createCommandHandler)
End Sub

1 个答案:

答案 0 :(得分:1)

正如Simon在原始问题的评论中所发布的那样,添加对以下内容的引用:

Microsoft.VisualStudio.Shell.Immutable.10.0.dll

如果您使用Microsoft.VisualStudio.Shell.Immutable.11.0.dll,则会遇到空SvsServiceProvider