Frage

Ich dokumentieren ein paar Methoden, die ich in C # geschrieben, die mit Parsing-Token beschäftigen. Aufgrund einiger technischer Einschränkungen in anderen Bereichen des Systems, müssen diese Token in Form von XML-Elementen nehmen (das heißt <tokenName />). Ich möchte das Format dieses Tokens in der zusammenfassenden Darstellung setzen selbst.

Dies ist jedoch ein Fehler ausgelöst.? Badly XML gebildet - Es wurde ein Name mit einem ungültigen Zeichen“gestartet Gibt es irgendeine Art von Escape-Zeichensequenz ich meine C # Zusammenfassung XML in Kommentare einbetten können

War es hilfreich?

Lösung

Verwenden Sie Standard-XML zu entkommen. Zum Beispiel:

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

Es ist nicht super-einfach als Code zu schreiben oder zu lesen, aber IntelliSense richtig demaskiert dies und Sie sehen das Recht vor, lesbar, was im Tooltip.

Andere Tipps

einen CDATA-Abschnitt verwenden. Zum Beispiel:

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

Das ist eleganter und lesbar in Quelle als Codieren von Sonderzeichen in Entity-Referenzen, wenn Sie ein größeres XML Stück haben.

Wenn die XML Sie selbst einbetten möchten CDATA-Abschnitte enthält, müssen Sie mehrere CDATA-Abschnitte verwenden, wie in oder auf Wikipedia . Oder Sie können immer Ebene Entitätsverweise verwenden, wie hier in anderen Antworten beschrieben.

Ich verwende Escape-Sequenzen, weil VisualStudios Tooltip nichts anzeigt, die in einem CDATA-Abschnitt ist.

Es ist sehr spät, aber lief in das gleiche Problem, <![CDATA[]]> mit dem Kommentar in Intellisense verstecken.

Ersetzen sowohl < und > war zu viel Arbeit für mich (faul :)). Ich fand heraus, dass nur die < mit &lt; Ersatz für die Intellisense genug war, weil es die XML ungültig und eignet sich für die Intellisense als Text in Ihrer Zusammenfassung Block zu analysieren macht.

Hier ist ein Beispiel:

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

Die Intellisense zeigt dies:

Parse the queue process response
<?xml version="1.0" encoding="utf-16"?><result success="True"><entity type="resource" operation="update" /></result>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top