سؤال

أنا توثيق عدد قليل من الطرق التي كتبت في C# التي تتعامل مع تحليل الرموز.بسبب بعض القيود التقنية في مجالات أخرى من النظام ، وهذه الرموز تحتاج إلى أن تأخذ شكل XML العناصر (أي ، <tokenName />).أود أن وضع شكل تلك الرموز في بيان موجز نفسها.

ومع ذلك ، فإن هذا يلقي خطأ:XML تشكيل-اسم بدأت مع حرف غير صالح".هل هناك أي نوع من الهروب تسلسل الأحرف يمكنني استخدام تضمين XML في C# ملخص التعليقات ؟

هل كانت مفيدة؟

المحلول

استخدم XML القياسية الهرب. على سبيل المثال:

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

وانها ليست فائقة سهلة للكتابة أو قراءة كرمز، ولكن التحسس بشكل صحيح unescapes هذا وأنت ترى الحق، شيء قابل للقراءة في تلميح الأدوات.

نصائح أخرى

استخدام CDATA القسم.على سبيل المثال:

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

هذا هو أكثر أناقة و مقروء في المصدر من ترميز الأحرف الخاصة في كيان المراجع عندما يكون لديك أكبر XML قطعة.

إذا XML كنت ترغب في تضمين في حد ذاته يحتوي على CDATA أقسام تحتاج إلى استخدام عدة CDATA أقسام كما هو موضح في جواب آخر على تجاوز سعة مكدس أو على ويكيبيديا.أو يمكنك دائما استخدام عادي الكيان المراجع كما هو موضح في إجابات أخرى هنا.

ويمكنني استخدام الهروب متواليات، لأن VisualStudios تلميح الأدوات لا يعرض أي شيء من داخل القسم CDATA.

وانه في وقت متأخر جدا، ولكن واجهت نفس المشكلة، وذلك باستخدام <![CDATA[]]> سوف إخفاء التعليق في التحسس.

وكان استبدال < و> على حد سواء إلى الكثير من العمل بالنسبة لي (كسول :)). لقد وجدت أن مجرد استبدال < مع &lt; كان كافيا لالتحسس لأنه يجعل XML غير صالحة ومناسبة لالتحسس تحليل كنص في كتلة ملخص الخاص بك.

وهنا مثال:

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

وسوف التحسس إظهار هذا:

Parse the queue process response
<?xml version="1.0" encoding="utf-16"?><result success="True"><entity type="resource" operation="update" /></result>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top