Me he dado cuenta de que en la mayoría, si no en todos, los controles web estándar en el espacio de nombres System.Web.UI.WebControls, puede agregar cualquier propiedad que desee sin fallar la página.Permitir cualquier propiedad/atributo en un servidor/usercontrol
Tome el control de botón Asp: para ver un ejemplo.
Este código es perfectamente válido:
<form runat="server">
<asp:Button runat="server" Text="Test button" crapAttribute="crapValue" />
</form>
Ahora, tengo un control de servidor personalizado, que se bloquea si agrego atributos arbitrarios a ella. Solo acepta atributos que tienen definida una propiedad pública correspondiente.
El error que obtengo es algo como esto "El control no tiene una propiedad pública llamada" crapAttribute "".
Me gustaría que mis controles personalizados aceptaran cualquier atributo sin fallar. ¿Qué debo hacer para que funcione?
He mirado los controles estándar en Reflector y tienen todo tipo de atributos y demás, pero no vi nada que me llamó la atención de inmediato.
Mis controles personalizados están heredando de WebControl por lo que vale.
Ahora me siento como un burro :-) Me di cuenta de que de hecho estoy heredando de "Control", no "WebControl". Solíamos heredar de "WebControl" pero fue cambiado a "Control" hace algún tiempo por alguna razón. Creo que si empiezo a heredar de "WebControl", este problema simplemente dejará de existir. – HaukurHaf