XML-String in einem C # Zusammenfassung Kommentar
-
03-07-2019 - |
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
Lösung
Verwenden Sie Standard-XML zu entkommen. Zum Beispiel:
<summary>This takes a <token1> and turns it into a <token2></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 <
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><?xml version="1.0" encoding="utf-16"?><result success="True"><entity type="resource" operation="update" /></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>