2017-07-02 48 views
1

我创建了一个Roslyn扩展来自动执行例程重构。当开发人员右键单击一个类型时,Roslyn应该提供重新生成其构造函数的一些默认代码。但是,由于类型结构,此操作有时可能会失败,例如,如果有多个构造函数。Roslyn代码重构 - 如何向用户传达失败原因?

我想告诉开发人员有关失败的原因和建议做什么。

我不想在这种情况下禁用重构,因为它不会提供关于它为什么不可用的信息以及如何将其重新提供。所以,我剩下一个选项来显示虚拟重构,它不做任何事情,但在其名称中包含所需的消息,即“重新生成构造函数不可用,因为类型具有多个构造函数”。

有没有更好的方法来将消息从Roslyn传递给开发人员?理想情况下,我想给他们展示一个模态消息框。可能的话,有没有办法从自己的代码中取消重构并给出取消原因?

回答

0

您的重构将在Visual Studio中运行,因此您可以使用Visual Studio扩展可以使用的任何API。我会看看this github存储库中关于哪些API可用的一些示例。