如何创建RegionDirectiveTriviaSyntax?
下面是我得到的最接近的结果,它失败了。第三个参数被定义为"name“,但没有对应的类型。我尝试过文字,标识符和其他几种类型的标记,但他们都抱怨这种类型。有没有一种正确的方法来解析一个,这样我就不用做“替换”了?
trivia是一个现有的C# SyntaxTrivia,我正在创建一个VB RegionDirectiveTriviaSyntax:
Dim node As RegionDirectiveTriviaSyntax =
SyntaxFactory.RegionDirectiveTrivia
(SyntaxFactory.Token(SyntaxKind.HashToken),
SyntaxFactory.Token(SyntaxKind.RegionKeyword),
SyntaxFactory.Token
(SyntaxKind.IdentifierToken,
trivia.ToString.Replace("#region ", "")
)
)发布于 2018-01-05 02:19:27
如果您不知道如何为某些特定的SyntaxNode构建SyntaxTree,比如本例中的Region。以下是您可以执行的操作:
确保您已经安装了.NET Compiler Platform SDK。这会将Syntax Visualizer添加到Visual Studio中。它允许你检查源代码的SyntaxTree。
进入View->Other Windows->Syntax Visualizer或在快速启动栏中搜索它,以显示以下面板:

只需将光标放在要检查的代码上即可。语法可视化工具将跳转到树中的特定节点。如果您单击区域的名称,您可以看到该节点是使用3个特定的标记创建的:HashToken、RegionKeyWord和一个StringLiteralToken。下面的代码将创建相同的RegionDirectiveTrivia
Dim regionDirectiveTriviaSyntax =
SyntaxFactory.RegionDirectiveTrivia(
SyntaxFactory.Token( SyntaxKind.HashToken),
SyntaxFactory.Token( SyntaxKind.RegionKeyword ) ,
SyntaxFactory.StringLiteralToken( "SomeRegionName" , "SomeRegionName") )https://stackoverflow.com/questions/48076563
复制相似问题