Visual studio 2015 Visual Studio快速修复程序能否与用户或主机交互?

Visual studio 2015 Visual Studio快速修复程序能否与用户或主机交互?,visual-studio-2015,roslyn,analyzer,Visual Studio 2015,Roslyn,Analyzer,我们正在创建一个快速修复程序,如果我们可以与用户交互,那将是非常棒的 例如,我们想要打开一个网站、显示一个表单(例如向导)或获取一个主机实例(通过DTE) 例如,当Visual Studio显示bobble而不是quick fix时,我们希望打开一个表单: 我们可以这样做,或者在Visual Studio 2015中使用沙箱运行分析器?我认为您不能通过分析器/诊断方法来实现这一点。(我一直在等待回应,以防有人知道有可能想要回复) 然而,我相当肯定你可以通过一个“灯泡建议”来完成你想做的事情。灯

我们正在创建一个快速修复程序,如果我们可以与用户交互,那将是非常棒的

例如,我们想要打开一个网站、显示一个表单(例如向导)或获取一个主机实例(通过DTE)

例如,当Visual Studio显示bobble而不是quick fix时,我们希望打开一个表单:


我们可以这样做,或者在Visual Studio 2015中使用沙箱运行分析器?

我认为您不能通过分析器/诊断方法来实现这一点。(我一直在等待回应,以防有人知道有可能想要回复)

然而,我相当肯定你可以通过一个“灯泡建议”来完成你想做的事情。灯泡建议比分析器稍微复杂一些,但更可定制

可以在MSDN上找到完整的演练:

特别是,你应该看看。其实施情况如下:

public Task<object> GetPreviewAsync(CancellationToken cancellationToken)
{
    var textBlock = new TextBlock();
    textBlock.Padding = new Thickness(5);
    textBlock.Inlines.Add(new Run() { Text = m_upper });
    return Task.FromResult<object>(textBlock);
}
公共任务GetPreviewAsync(CancellationToken CancellationToken) { var textBlock=新的textBlock(); textBlock.Padding=新厚度(5); Add(newrun(){Text=m_upper}); 返回Task.FromResult(文本块); } 在本例中,他们返回的是
文本块
,但此时您应该能够返回自定义表单

您还必须在中实现其他方法以将所有内容连接起来


实际上,您可以看到所有与Roslyn相关的灯泡动作都实现了
isuggestation
。它们的实现在类中可用。

很好!!这就是我们需要的。我将尝试这样做,并在同一个vsix中部署这两个加载项