title: How do I reference a C# keyword in XML documentation?
body: <p><code>&lt;see cref="switch" /&gt;</code>, for example, doesn't work - I get the compilation warning: <code>XML comment on ... has syntactically incorrect cref attribute 'switch'</code></p>
  
  <hr>
  
  <p>Context for those who are interested...</p>
  
  <pre><code>/// &lt;summary&gt;Provides base functionality for hand-coded abstractions of API method wrappers, mostly those that abstract over
  /// parameters that are required to be JSON-encoded.&lt;/summary&gt;
  public class FacebookArgs : Dictionary&lt;String, Object&gt;
  {
      /// &lt;summary&gt;Initializes an instance of &lt;see cref="FacebookArgs" /&gt;.&lt;/summary&gt;
      public FacebookArgs() { }
  
      /// &lt;summary&gt;Intializes an instance of &lt;see cref="FacebookArgs" /&gt;, that contains elements copied from &lt;paramref name="dictionary "/&gt;.&lt;/summary&gt;
      /// &lt;param name="dictionary"&gt;&lt;/param&gt;
      public FacebookArgs(IDictionary&lt;String, Object&gt; dictionary)
          : base(dictionary) { }
  
      /// &lt;summary&gt;Gets or sets the value associated with the specified key.&lt;/summary&gt;
      /// &lt;param name="key"&gt;The key of the value to get or set.&lt;/param&gt;
      /// &lt;returns&gt;The value associated with the specified key.&lt;/returns&gt;
      /// &lt;remarks&gt;This implementation hides the base indexer implementation such that specifying a key that does not exist returns null rather than throwing a &lt;see cref="KeyNotFoundException" /&gt;.&lt;/remarks&gt;
      public new Object this[String key]
      {
          get
          {
              Object value;
              if (this.TryGetValue(key, out value)) return value;
              else return null;
          }
          set { base[key] = value; }
      }
  
      /// &lt;summary&gt;In derived classes, provides specialized serialization logic for specific properties contained in this object.&lt;/summary&gt;
      /// &lt;param name="key"&gt;The key of the property to serialize.&lt;/param&gt;
      /// &lt;param name="args"&gt;A reference to a dictionary of arguments that will be passed directly to a &lt;see cref="FacebookRequest" /&gt; object.&lt;/param&gt;
      /// &lt;remarks&gt;
      /// &lt;para&gt;This method allows specialized serialization logic, such as JSON encoding, to be applied to specific properties.&lt;/para&gt;
      /// &lt;para&gt;To implement, use a &lt;c&gt;switch&lt;/c&gt; (&lt;c&gt;Select&lt;/c&gt; in VB.NET) statement to filter based on &lt;paramref name="key" /&gt; and provide the property-specific logic.
      /// The resulting value should then be added to &lt;paramref name="args" /&gt; using the same &lt;paramref name="key "/&gt;.
      /// &lt;/para&gt;
      /// &lt;para&gt;Properties that do not require additional processing (strings, integral values, etc) should be ignored.&lt;/para&gt;
      /// &lt;/remarks&gt;
      protected virtual void SerializeProperty(String key, ref IDictionary&lt;String, Object&gt; args) { }
  
      /// &lt;summary&gt;Returns a dictionary of key/value pairs suitable to be passed a &lt;see cref="FacebookRequest" /&gt; object.&lt;/summary&gt;
      /// &lt;returns&gt;A dictionary of key/value pairs suitable to be passed a &lt;see cref="FacebookRequest" /&gt; object.&lt;/returns&gt;
      /// &lt;remarks&gt;This method calls the &lt;see cref="SerializeProperty" /&gt; for each key in the object, which allows property-specific processing
      /// to be done on any property.&lt;/remarks&gt;
      /// &lt;seealso cref="SerializeProperty" /&gt;
      public IDictionary&lt;String, Object&gt; GetArgs()
      {
          IDictionary&lt;String, Object&gt; args = new Dictionary&lt;String, Object&gt;();
  
          foreach (String key in this.Keys)
          {
              this.SerializeProperty(key, ref args);
  
              if (!args.ContainsKey(key) &amp;&amp; this[key] != null)
              {
                  args.Add(key, this[key]);
              }
          }
  
          return args;
      }
  }
  </code></pre>
  
  <hr>
  
  <p>The tag in question can be found in the <code>&lt;remarks&gt;</code> tag for <code>SerializeProperty</code>. I'm erring on the side of verbose documentation. I also plan on providing some <code>&lt;example&gt;</code>s, I just haven't gotten around to it yet.</p>