如何修改解决方案/项目对象



我已经定义了属性MyAttribute:应该在一个类中只使用一次的属性(每个类只能有一个构造函数具有它,并且它只能在ctor的属性列表中出现一次(。

我创建了一个 Roslyn 分析器来检查这一点,它标记了此类属性的每次使用(如果多次使用(,并允许用户选择名为"保留此属性出现并删除所有其他属性"的夹具。

现在在修复提供程序中,我需要返回新的修改后的解决方案。修改每个需要修复的文档并不困难(通过使用 SyntaxRewriter 修改内部的语法树(。但是,我不知道如何修改解决方案或项目 - 他们没有任何方法,例如"替换项目"/"替换文档"。

怎么做?

您可以使用以下方法替换文档的文本:

solution = solution.WithDocumentText(currentDocument.Id, 
                                     currentDocumentSyntaxTree.GetText());

最新更新