【问题标题】:How do I reference a C# keyword in XML documentation?如何在 XML 文档中引用 C# 关键字?
【发布时间】:2010-10-16 03:28:27
【问题描述】:

例如,<see cref="switch" /> 不起作用 - 我收到编译警告:XML comment on ... has syntactically incorrect cref attribute 'switch'


感兴趣的人的上下文...

/// <summary>Provides base functionality for hand-coded abstractions of API method wrappers, mostly those that abstract over
/// parameters that are required to be JSON-encoded.</summary>
public class FacebookArgs : Dictionary<String, Object>
{
    /// <summary>Initializes an instance of <see cref="FacebookArgs" />.</summary>
    public FacebookArgs() { }

    /// <summary>Intializes an instance of <see cref="FacebookArgs" />, that contains elements copied from <paramref name="dictionary "/>.</summary>
    /// <param name="dictionary"></param>
    public FacebookArgs(IDictionary<String, Object> dictionary)
        : base(dictionary) { }

    /// <summary>Gets or sets the value associated with the specified key.</summary>
    /// <param name="key">The key of the value to get or set.</param>
    /// <returns>The value associated with the specified key.</returns>
    /// <remarks>This implementation hides the base indexer implementation such that specifying a key that does not exist returns null rather than throwing a <see cref="KeyNotFoundException" />.</remarks>
    public new Object this[String key]
    {
        get
        {
            Object value;
            if (this.TryGetValue(key, out value)) return value;
            else return null;
        }
        set { base[key] = value; }
    }

    /// <summary>In derived classes, provides specialized serialization logic for specific properties contained in this object.</summary>
    /// <param name="key">The key of the property to serialize.</param>
    /// <param name="args">A reference to a dictionary of arguments that will be passed directly to a <see cref="FacebookRequest" /> object.</param>
    /// <remarks>
    /// <para>This method allows specialized serialization logic, such as JSON encoding, to be applied to specific properties.</para>
    /// <para>To implement, use a <c>switch</c> (<c>Select</c> in VB.NET) statement to filter based on <paramref name="key" /> and provide the property-specific logic.
    /// The resulting value should then be added to <paramref name="args" /> using the same <paramref name="key "/>.
    /// </para>
    /// <para>Properties that do not require additional processing (strings, integral values, etc) should be ignored.</para>
    /// </remarks>
    protected virtual void SerializeProperty(String key, ref IDictionary<String, Object> args) { }

    /// <summary>Returns a dictionary of key/value pairs suitable to be passed a <see cref="FacebookRequest" /> object.</summary>
    /// <returns>A dictionary of key/value pairs suitable to be passed a <see cref="FacebookRequest" /> object.</returns>
    /// <remarks>This method calls the <see cref="SerializeProperty" /> for each key in the object, which allows property-specific processing
    /// to be done on any property.</remarks>
    /// <seealso cref="SerializeProperty" />
    public IDictionary<String, Object> GetArgs()
    {
        IDictionary<String, Object> args = new Dictionary<String, Object>();

        foreach (String key in this.Keys)
        {
            this.SerializeProperty(key, ref args);

            if (!args.ContainsKey(key) && this[key] != null)
            {
                args.Add(key, this[key]);
            }
        }

        return args;
    }
}

可以在SerializeProperty&lt;remarks&gt; 标记中找到相关标记。我在冗长的文档方面犯了错误。我还计划提供一些&lt;example&gt;s,我只是还没有开始。

【问题讨论】:

    标签: c# keyword xml-documentation


    【解决方案1】:

    cref 是指另一个成员——类、方法等。

    在这种情况下,您希望它链接到什么?一般来说,您希望整体效果如何?

    根据这个excellent XML doc guide&lt;see&gt;标签有一个未记录的属性langword

    <see langword="switch" />
    

    这对你有帮助吗?可能值得尝试一下,看看它能做什么。

    如果您只想使用普通的超链接,请使用 href 而不是 cref:

    <see href="http://msdn.microsoft.com/en-us/library/06tc147t.aspx">switch</see>
    

    【讨论】:

    • 它甚至适用于 C# 项目中的 VB.NET!要实现,请使用 ( in VB.NET)
    • 我不得不承认,我以前从未见过这个属性。我只知道该页面,并且看到了它自己要说的话:)
    • 我猜&lt;see&gt;...&lt;/a&gt; 是一个错字。 &lt;see href="link"&gt;&lt;/see&gt;&lt;a href="link"&gt;&lt;/a&gt; 都适用于普通超链接(使用 Sandcastle 测试:SHFB)。
    • 留给微软,让其他人做their documentation 更好。
    • 你好,未来微软documents&lt;see langword="..."/&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多