繁体   English   中英

C#摘要注释中的Xml字符串

[英]Xml string in a C# summary comment

我正在记录我在C#中编写的一些处理解析令牌的方法。 由于系统其他区域存在一些技术限制,这些令牌需要采用XML元素的形式(即<tokenName /> )。 我想将这些令牌的格式放在摘要语句中。

但是,这会引发错误:格式错误 - 名称以无效字符开头“。是否有任何类型的转义字符序列可用于在我的C#摘要注释中嵌入XML?

使用标准XML转义。 例如:

<summary>This takes a &lt;token1&gt; and turns it into a &lt;token2&gt;</summary>

键入或读取代码并不是一件容易的事,但是IntelliSense正确地解决了这个问题,你在工具提示中看到了正确的,可读的东西。

使用CDATA部分。 例如:

<![CDATA[ <name>Bob</name> ]]>

当您拥有更大的XML片段时,这在源代码中比在实体引用中编码特殊字符更优雅和可读。

如果要嵌入的XML本身包含CDATA部分,则需要使用多个CDATA部分,如Stack OverflowWikipedia 上的另一个答案中所述。 或者您可以始终使用普通实体引用,如此处的其他答案中所述。

我使用转义序列,因为VisualStudios工具提示不显示CDATA部分内的任何内容。

现在已经很晚了,但遇到了同样的问题,使用<![CDATA[]]>会隐藏Intellisense中的评论。

替换<>对我来说很有用(懒惰:))。 我发现只需要替换< with &lt; 对于Intellisense来说已经足够了,因为它使得xml无效并且适合于Intellisense在摘要块中作为文本进行解析。

这是一个例子:

/// <summary>
/// Parse the queue process response
/// <para>&lt;?xml version="1.0" encoding="utf-16"?>&lt;result success="True">&lt;entity type="resource" operation="update" />&lt;/result></para>
/// <![CDATA[
/// <?xml version="1.0" encoding="utf-16"?><result success="True"><entity type="resource" operation="update" /></result>
/// ]]></summary>
/// <param name="response"></param>
/// <returns></returns>

Intellisense将显示:

Parse the queue process response
<?xml version="1.0" encoding="utf-16"?><result success="True"><entity type="resource" operation="update" /></result>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM