我该如何使用Roslyn (CodeFixProvider)添加新区域?

4

我想使用CodeFixProvider在我的代码中添加一个新的#region。我已经知道regions是节点前导trivia的一部分。

但是我该如何创建一个新的RegionDirectiveTrivia


认真问题,为什么你想要添加区域? 区域被广泛认为是一种反模式,例如http://programmers.stackexchange.com/a/53114/105684。 - David Arno
1
好的提示。但是目前区域是我们公司编码准则的一部分。我会把这个提示带到下一次会议上,但现在这个准则是“规则”。 - Toni Wenzel
4
@David 你没有正确阅读那篇文章......只要有另一个人声明区域不是反模式“ 区域不能真正成为"反模式",因为该术语通常用于描述程序逻辑/设计模式,而不是文本编辑器的布局” - 只因为一个人做出评论并不能使其成为真理。使用区域非常主观。 - Kixoka
1个回答

6

使用SyntaxFactory.RegionDirectiveTrivia()。当您不知道如何生成代码片段的某个部分时,您可以随时参考Roslyn Quoter网站。


感谢。找到以下可能性:SyntaxFactory.Trivia(SyntaxFactory.RegionDirectiveTrivia( true).WithHashToken(SyntaxFactory.Token(SyntaxKind.HashToken)) .WithRegionKeyword(SyntaxFactory.Token( SyntaxKind.RegionKeyword)) .WithEndOfDirectiveToken(SyntaxFactory.Token(SyntaxFactory.TriviaList(SyntaxFactory.PreprocessingMessage(@"myTest")), SyntaxKind.EndOfDirectiveToken,SyntaxFactory.TriviaList()) )) - Toni Wenzel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接