2009-03-03 7 views
29

Je documente quelques méthodes que j'ai écrites en C# qui traitent des jetons d'analyse. En raison de certaines contraintes techniques dans d'autres zones du système, ces jetons doivent prendre la forme d'éléments XML (c'est-à-dire <tokenName />). Je voudrais mettre le format de ces jetons dans le résumé lui-même.Chaîne Xml dans un commentaire résumé en C#

Cependant, cela jette une erreur:. XML mal formé - Un nom a été commencé par un caractère non valide » Y at-il sorte de séquence de caractères d'échappement je peux utiliser pour intégrer XML dans mes commentaires C# résumé

Répondre

38

? Utilisez XML standard échapper. Par exemple:

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

ce n'est pas super facile à taper ou lire code, mais IntelliSense déprotège bien cela et vous voyez le droit, chose lisible dans l'info-bulle

24

Utilisez un. Section CDATA, par exemple:Ceci est plus élégant et plus lisible dans la source que l'encodage des caractères spéciaux dans les références d'entité lorsque vous avez un morceau XML plus grand. Si le XML que vous voulez intégrer contient des sections CDATA, vous devez utiliser plusieurs sections CDATA comme décrit dans another answer on Stack Overflow ou Wikipedia. Ou vous pouvez toujours utiliser des références d'entité simples comme décrit dans d'autres réponses ici.

4

J'utilise des séquences d'échappement, car l'info-bulle VisualStudios n'affiche rien à l'intérieur d'une section CDATA.

2

Il est très tard, mais a rencontré le même problème, en utilisant <![CDATA[]]> va cacher le commentaire dans Intellisense.

Remplacer à la fois < et > était de travailler beaucoup pour moi (paresseux :)). J'ai découvert qu'il suffit de remplacer le < par &lt; était suffisant pour l'Intellisense car il rend le xml invalide et adapté à l'Intellisense pour analyser le texte dans votre bloc de résumé.

est un exemple:

/// <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> 

Le IntelliSense montrer:

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