私は Facebook FBML コントロール ライブラリに取り組んでおり、ASP.NET WebControls ライブラリのようにパターン化された FBML コントロールを作成したいと考えています。デフォルトでレンダリングを処理する基本クラスがあります。ここに私のレンダリング方法があります:
protected override void Render(HtmlTextWriter writer)
{
AddAttributesToRender(writer);
if (UseXfbmlSemantics)
{
writer.RenderBeginTag(ElementName);
writer.EndRender();
writer.RenderEndTag();
}
else
{
writer.RenderBeginTag(ElementName);
writer.RenderEndTag();
}
}
私が望むのは、UseXfbmlSemantics に基づいてレンダリングを変更することです。それが true の場合、レンダリングする必要があります。たとえば、次のようになります。
<fb:name uid="10300399458"></fb:name>
false の場合、自己終了タグでレンダリングする必要があります。
<fb:name uid="10300399458" />
「真」の条件をほぼ正しく動作させることができますが、自己終了タグはメソッドの Render セットと互換性がないようです。残念ながら、その場合は、AddAttributesToRender パターンも機能しないことも意味します。実際に生成しているのは次のとおりです。
<fb:name uid="10300399458">
</fb:name>
HtmlTextWriter (またはどの HtmlTextWriter を使用する必要があるか) を取得して、自己終了タグをレンダリングするにはどうすればよいですか? または、少なくとも、その中間スペースをレンダリングしないようにするにはどうすればよいでしょうか (開始タグと終了タグがすぐ隣り合うように)。