1

我正在尝试将 HTML(特别是 href)嵌入到 DescriptionAttribute 中,以将自动生成的 WCF 帮助文档中的链接添加到描述所涉及数据结构的更详细的 SandCastle 生成页面。类似于以下内容:

[Description(
    "Creates jobs. A detailed description of the Jobs data structure can " +
    "be found <a href=\"http://www.example.com/api/docs/jobs\">here.</a>")]
[WebInvoke(UriTemplate = "Jobs", Method = "POST")]
public Jobs CreateJobs(Jobs jobs)
{
    ...
}

这会在生成的文档中生成以下 HTML,并将我的嵌入 HTML 编码为字符实体:

<td>Creates jobs. A detailed description of the Jobs data structure can be found &lt;a href="http://www.example.com/api/docs/jobs\"&gt;here.&lt;/a&gt;</td>

完全像这样呈现:

创造就业机会。可以在<a href="http://www.example.com/api/docs/jobs\">这里找到 Jobs 数据结构的详细说明。</a>

但我希望它像这样呈现:

创造就业机会。Jobs 数据结构的详细描述可以在这里找到。

我想知道是否可以覆盖 Description 属性以删除字符实体,所以我尝试了这个:

class HtmlDescriptionAttribute : System.ComponentModel.DescriptionAttribute
{
    public override string Description
    {
        get
        {
            string description = base.Description;
            //
            // Remove encoding from description here
            //
            return description;
        }
    }

    public HtmlDescriptionAttribute() : base() { }
    public HtmlDescriptionAttribute(string description) : base(description) { }
}

但是在被覆盖的属性中设置一个断点,我发现在这个阶段它还没有被编码。因此,调用此属性的任何内容都可能是添加编码。

有谁知道是否/如何做到这一点?

谢谢!

4

0 回答 0