我正在编写 Visual Studio 扩展,我需要创建自己的IWpfTextViewHost(代码编辑器窗口)。这可以通过 完成,ITextEditorFactoryService但这必须通过 MEF 框架加载。
但是我的 import 总是null,但我似乎无法弄清楚为什么我的 import 是null。我对 MEF 的工作原理有一个粗略的想法,有没有一种方法可以调用CompositionContainerVisual Studio 本身?还是 vsix 项目构建了这个容器?如果是这样,基于什么设置?
public class MyViewHost {
[Import]
public ITextEditorFactoryService TextEditorFactory { get; set; }
public IWpfTextViewHost CreateViewHost(ITextBuffer textBuffer)
{
var textView = this.TextEditorFactory.CreateTextView(textBuffer);
return this.TextEditorFactory.CreateTextViewHost(textView, true);
}
}
编辑 这是相关的部分extension.vsixmanifest
<Assets>
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="Build%CurrentProject%" Path="|dllName;PkgdefProjectOutputGroup|" />
<Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" Path="dllName" />
</Assets>
慕尼黑的夜晚无繁华
相关分类