Roslyn 创建 XmlText

Roslyn Create XmlText

我已经尝试为

创建 XmlText
''' <summary>
''' Any Text
''' </summary>

但下面显示的代码不起作用,

VB.SyntaxFactory.XmlText("<summary>" & vbCrLf & "        ''' AnyText" & vbCrLf & "        '''</summary>")

结果

"&lt;summary&gt;" & vbCrLf & "        ''' AnyText" & vbCrLf & "        ''' &lt;/summary&gt;"

XmlText 元素是 XML 节点内的文本 - 即

之间的文本。由于您使用 XmlText,因此文本会相应地进行翻译,因此它们可以放入 XmlElement 中。

为了创建所需的文本,您只需使用 SyntaxFactory 创建一个 XmlElement,然后使用第二个参数插入其他 XmlNodeElement,例如文本。请注意,XmlTextNewLine 元素在表达式后附加注释 (''')。

Dim element = VB.SyntaxFactory.DocumentationComment(
    VB.SyntaxFactory.XmlElement("summary", VB.SyntaxFactory.List(
                    New List(Of VB.Syntax.XmlNodeSyntax) From { 
                            VB.SyntaxFactory.XmlText("").AddTextTokens(
                            VB.SyntaxFactory.XmlTextNewLine(vbCrLf, true))
                            .AddTextTokens
                            (VB.SyntaxFactory.XmlTextNewLine("Any Text"+vbCrLf, true))
                 })))

此调用将产生以下代码:

''' <summary>
''' Any Text
''' </summary>

我认为答案缺少 "From {" 来编译我在下面添加的。没有帮助我无法完成,谢谢。

SyntaxFactory.DocumentationComment(
                            SyntaxFactory.XmlElement("summary", SyntaxFactory.List(
                                New List(Of Syntax.XmlNodeSyntax) From {
                                      SyntaxFactory.XmlText("").AddTextTokens(
                                        SyntaxFactory.XmlTextNewLine(vbCrLf, True)).
                                            AddTextTokens(SyntaxFactory.XmlTextNewLine("Any Text" & vbCrLf, True))
                                            }
                                            )
                                         ))