【发布时间】:2018-01-07 17:44:54
【问题描述】:
如何创建 RegionDirectiveTriviaSyntax?
下面是我得到的最接近的结果,但它失败了。第三个参数被定义为“名称”,但没有相应的类型。我尝试过文字、标识符和其他几种标记,但它们都抱怨种类。有没有正确的解析方法,所以我不必做“替换”?
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 ", "")
)
)
【问题讨论】:
-
根据SyntaxFactory.RegionDirectiveTrivia Method,三个参数中的每一个都是一个Microsoft.CodeAnalysis.SyntaxToken。你的 VS 的 Intellisense 不工作吗?我误解了这个问题吗?
-
使用source!它表明它特别想要一个
StringLiteralToken。 -
是的,Intellisense 可以工作,但是有很多 SyntaxToken 种类。我正在寻找的答案是“StringLiteralToken”。谢谢。问题的另一部分是你如何挑选一个的部分,我看不到任何我可以投射 SyntaxTravia 的东西,这让我可以得到特别是 StringLiteralToken 的部分。
-
使用 StringLiteralToken 我得到相同的消息 =“指定的参数超出了有效值的范围。” & vbCrLf & "参数名称:种类"