4

HtmlTextWriterhtmlをストリームに出力するために使用しています。ただし、htmlコメントを書き込む方法がありません。もちろん、私は拡張メソッドを書くことができます

public static void WriteComment(this HtmlTextWriter writer, string comment)
{
  writer.Write("<!-- ");
  writer.WriteEncodedText(comment);
  writer.Write(" -->");
}

しかし、それは少しエレガントではないと感じます-私が見ていない組み込みのメソッドはありますか?

4

1 に答える 1

2

仕様を確認した後、これらの拡張機能はわずかに正確である可能性があると主張できます。

public static void WriteBeginComment(this HtmlTextWriter writer)
{
    writer.Write(HtmlTextWriter.TagLeftChar);
    writer.Write("!--");
}

public static void WriteEndComment(this HtmlTextWriter writer)
{
    writer.Write("--");
    writer.Write(HtmlTextWriter.TagRightChar);
}

public static void WriteComment(this HtmlTextWriter writer, string comment)
{
    if (
        comment.StartsWith(">") || 
        comment.StartsWith("->") || 
        comment.Contains("--") ||
        comment.EndsWith("-"))
    {
        throw new ArgumentException(
            "text does not meet HTML5 specification",
            "comment");
    }

    writer.WriteBeginComment();
    writer.Write(comment);
    writer.WriteEndComment();
}
于 2013-02-07T11:01:09.007 に答える