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>

これは正確に次のようにレンダリングされます:

雇用を創出します。Jobs データ構造の詳細な説明は、<a href="http://www.example.com/api/docs/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