2009-03-03 28 views
29

Ben ayrıştırma jetonları ile ilgilenen C# yazdım birkaç yöntem belgeleme. Sistemin diğer alanlarındaki bazı teknik kısıtlamalar nedeniyle, bu belirteçlerin XML öğelerini (yani, <tokenName />) alması gerekir. Bu belirteçlerin biçimini özet ifadesinin kendisinde bırakmak isterim.Bir C# özet yorum içinde Xml dize

Ancak bu bir hata atar. Kötü oluşmuş XML - Bir ad, geçersiz karakter" ile başlayan benim C# özeti yorumlarında XML gömebileceğiniz kaçış karakteri dizisinin herhangi çeşit var mıdır

cevap

38

? kaçan standart XML kullanın. Örneğin:

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

Bu yazın veya kod olarak okunması süper kolay değil ama IntelliSense düzgün bu çıkış karakterini ve araç ipucu hakkı, okunabilir şey bakın

24

kullanın. CDATA bölümü Örneğin:

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

Bu, daha geniş bir XML parçanız olduğunda, varlık referanslarındaki özel karakterleri kodlamaktan daha zarif ve okunabilir bir kaynaktır.

Gömmek istediğiniz XML CDATA bölümleri içeriyorsa, another answer on Stack Overflow veya Wikipedia numaralı belgelerde açıklandığı gibi birden çok CDATA bölümünü kullanmanız gerekir. Ya da her zaman diğer cevaplarda açıklandığı gibi sade varlık referanslarını kullanabilirsiniz.

4

VisualStudios araç ipucu bir CDATA bölümünün içinde hiçbir şey göstermediğinden, çıkış dizileri kullanıyorum.

2

Çok geç, ama aynı soruna rastladı, <![CDATA[]]> kullanarak Intellisense içerisindeki yorumu gizleyecektir.

Hem < hem de >'un değiştirilmesi, benim için çok çalışmaktı (tembel :)). Sadece <'u &lt; ile değiştirmenin Intellisense için yeterli olduğunu öğrendim çünkü xml geçersiz ve Intellisense için özet bloğunuzda metin olarak ayrıştırmak için uygun.

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

/// <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 bu gösterecektir: Burada

bir örnektir
İlgili konular