2011-01-30 8 views

Respuesta

17

@Register es la directiva de uso más común. Lo usa cuando quiere usar un control de usuario en su página aspx o ascx declarativamente. @Register asocia el control con un prefijo específico y luego puede usarlo en su marcado.

@Reference solo le dice a ASP.NET que compile el otro control cuando se compila su página aspx o ascx. Eso asegura que esté disponible en tiempo de ejecución y se puede agregar a su jerarquía de control mediante programación. Esto es menos común ya que cambiar dinámicamente los controles de usuario en el tiempo de ejecución no es común.

Aquí hay una buena publicación en el blog al respecto.

http://weblogs.asp.net/johnkatsiotis/archive/2008/08/13/the-reference-directive.aspx

20

@Register se utiliza principalmente para registrar etiqueta prefijos a declarativos controles de uso dentro de una página.

<%@ Register tagprefix="my" namespace="MyNamespace" %> 

<my:CustomControl runat=server /> 

@Reference se utiliza principalmente para hacer referencia a una página o usuario de control (por nombre de archivo o ruta de acceso virtual) para programáticamente se refieren a miembros de la página o control.

<%@ Reference Control="MyControl.ascx" %> 

<% MyControl ctrl = (MyControl) Page.LoadControl("MyControl.ascx"); 
    ctrl.CustomProperty = "..."; //REFERENCE directive is needed to access property 
%>