我想在Roslyn的C#解决方案中删除源代码中的所有注释。 但我该怎么做?
public void DeleteComment()
{
var code = File.ReadAllText("code.cs");
SyntaxTree tree = SyntaxFactory.ParseSyntaxTree(code);
///Delete Comments ?
}
答案 0 :(得分:7)
只是@SLaks回答的一些扩展。您需要扩展CSharpSyntaxRewriter
并覆盖VisitTrivia
方法。在这里你需要检查琐事的Kind
。根据您的需要,您应该过滤单行和多行注释:
trivia.IsKind(SyntaxKind.SingleLineCommentTrivia) || trivia.IsKind(SyntaxKind.MultiLineCommentTrivia)
并返回default(SyntaxTrivia)
将其从树中删除。