System.Web.UI.WebControls名前空間のすべてではないにしてもほとんどの標準Webコントロールで、ページをクラッシュさせることなく、必要なプロパティを追加できることに気付きました。
例として、asp:Buttonコントロールを取り上げます。
このコードは完全に有効です:
<form runat="server">
<asp:Button runat="server" Text="Test button" crapAttribute="crapValue" />
</form>
これで、任意の属性を追加するとクラッシュするカスタムサーバーコントロールができました。対応するパブリックプロパティが定義されている属性のみを受け入れます。
私が得るエラーは、「コントロールには「crapAttribute」という名前のパブリックプロパティがありません」のようなものです。
カスタムコントロールがクラッシュすることなく任意の属性を受け入れるようにしたいと思います。それが機能するために私は何をする必要がありますか?
私はReflectorの標準コントロールを見てきましたが、それらにはあらゆる種類の属性などがありますが、すぐに目を引くものは何もありませんでした。
私のカスタムコントロールは、その価値のためにWebControlから継承しています。