什么是最小的工作IVsTextViewCreationListener实现?

问题描述 投票:4回答:1

我创建了一个VISX项目,并编写了这段代码:

using Microsoft.VisualStudio.Editor;
using Microsoft.VisualStudio.TextManager.Interop;
using System.ComponentModel.Composition;

namespace MyExtension
{
    [Export(typeof(IVsTextViewCreationListener))]
    public class Main : IVsTextViewCreationListener
    {
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
        }
    }
}

如果我在VsTextViewCreated方法中放置一个断点,Visual Studio会告诉我它永远不会被击中。在调试器中启动的Visual Studio的第二个实例中打开文件确实不会触发它。

我究竟做错了什么?

visual-studio visual-studio-2013 mef visual-studio-extensions
1个回答
4
投票

您需要为您的类指定Content Type和TextView Role:

[Microsoft.VisualStudio.Utilities.ContentType("text")]
[Microsoft.VisualStudio.Text.Editor.TextViewRole(Microsoft.VisualStudio.Text.Editor.PredefinedTextViewRoles.Editable)]

另外,不要忘记在扩展程序清单中声明MefComponent资产:

并确保在.csproj中:

<IncludeAssemblyInVSIXContainer>true</IncludeAssemblyInVSIXContainer>
© www.soinside.com 2019 - 2024. All rights reserved.