Compartilhar via


@ Register

Cria uma associação entre um prefixo de marca e um controle personalizado, que fornece aos desenvolvedores uma maneira concisa para fazer referência a controles personalizados em um arquivo de aplicativo do ASP.NET (incluindo páginas da Web, controles de usuário e páginas-mestre).

<%@ Register tagprefix="tagprefix"
   namespace="namespace"
   assembly="assembly" %>
<%@ Register tagprefix="tagprefix"
   namespace="namespace" %>
<%@ Register tagprefix="tagprefix"
   tagname="tagname"
   src="pathname" %>

Atributos

  • assembly
    O assembly no qual o namespace associados a tagprefix atributo reside.

    ObservaçãoObservação:

    O nome do assembly não pode incluir uma extensão de arquivo. Observe também que, se a assembly atributo estiver ausente, o analisador do ASP.NET pressupõe que haja código-fonte na pasta App_Code do aplicativo. Se você tiver código-fonte para um controle que você deseja registrar em uma página sem precisar compilá-lo, coloque o código-fonte na pasta App_Code. ASP.NET compilará dinamicamente arquivos de fonte na pasta App_Code em time de execução.

  • namespace
    O namespace do controle personalizado que está sendo registrado.

  • src
    O local (relativo ou absoluto) do declarativa Controles de usuário do ASP.NET arquivo para associar o tagprefix:tagname emparelhar.

  • tagname
    Um alias para associar a uma classe arbitrário. Este atributo é usado somente para controles de usuário.

  • tagprefix
    Um alias arbitrário que fornece uma referência de taquigrafia para o namespace da marcação que está sendo usada no arquivo que contém a diretiva.

Comentários

Including the @ Register directive in a page or user control allows you to lay out custom server controls or user controls using declarative Sintaxe de controle de servidor personalizado.

ObservaçãoObservação:

Você também pode registrar controles personalizados em todas as páginas de um aplicativo usando o Elemento de controles para páginas (ASP.NET Settings esquema) no arquivo Web.config.

Use the @ Register directive in the following situations:

  • Para adicionar um controle de servidor personalizado declarativamente a uma página da Web, um controle de usuário, um mestre página ou em um arquivo de aparências (consulte Visão Geral de Temas e Aparências ASP.NET).

  • Para adicionar um controle de usuário declarativamente uma página da Web, um controle de usuário, uma página mestra ou um arquivo de aparências.

ObservaçãoObservação:

O tagprefixo valor "móveis" é usado pelo ASP.NET para identificar controles da Web móveis na System.Web.UI.MobileControls espaço para nome. Você deve evitar usar esse prefixo para seus controles.

When you use the @ Register directive to reference a control, you can place the code for the control in the following places:

  • sistema autônomo código-fonte na pasta de App_Code do aplicativo, onde ele irá ser dinamicamente compilado em time de execução. Essa é uma opção conveniente durante o desenvolvimento. If you choose this option, you do not use the assembly attribute in the @ Register directive.

  • sistema autônomo um assembly compilado na pasta de bin do aplicativo. Essa é uma opção comum para aplicativos da Web implantados.

  • sistema autônomo um assembly compilado e assinado no global cache de assemblies (GAC). Essa é uma opção comum se você desejar compartilhar um controle compilado entre vários aplicativos. Você pode referenciar um controle no GAC, atribuindo a uma seqüência de caracteres de identificação para o assembly atributo. A seqüência Especifica os detalhes necessários sobre o controle, incluindo seu nome de tipo totalmente qualificado, sua versão, seu token de chave pública e sua cultura. A seqüência fictícia a seguir ilustra uma referência a um controle personalizado no GAC:

    <%@ Register  tagprefix="custom"
         namespace="Mycompany.namespace"
         assembly="Mycompany.namespace.control, Version=1.2.3.4, 
            PublicKeyToken=12345678abcdefgh, Culture=neutral"  %>
    

    Para obter mais informações sobre como fazer referência a assemblies, consulte Adicionar elemento para assemblies para compilação (ASP.NET Settings esquema).

Para controles de usuário declarativo, use o tagname, tagprefix, e src atributos. sistema autônomo duas primeiras são sempre usadas juntos sistema autônomo um emparelhar separados por dois-pontos (tagprefix:tagname) quando você declara o controle na página. Você pode mapear vários espaços para nome para o mesmo tagname, sistema autônomo no exemplo a seguir:

<% @Register tagprefix="tag1" namespace="MyNamespace1"/>
<% @Register tagprefix="tag1" namespace="MyNamespace2"/> 

O valor do atributo src pode ser um caminho relativo ou absoluto para o arquivo de origem do controle de usuário do diretório raiz do seu aplicativo. Para facilitar o uso, é recomendável que usar um caminho relativo. Por exemplo, suponha que você armazene arquivos de controle de usuário de todas as do seu aplicativo em um diretório \Usercontrol que é um subdiretório da raiz do aplicativo. Para incluir o controle de usuário encontrado em um arquivo Usercontrol1.ascx, inclua o seguinte no @ Register diretiva:

Src="~\usercontrol\usercontrol1.ascx" 

O til (~) caractere representa o diretório raiz do aplicativo.

ObservaçãoObservação:

Se seu controle de usuário estiver no mesmo diretório que a página que contém, o src valor de atributo deve ser o nome e a extensão do arquivo .ascx.

Ao incluir controles de servidor personalizado que você tenha compilado em um arquivo .dll para uso com o seu aplicativo, use o tagprefix atributo com o assembly e namespace atributos. Se você não incluir o namespaceatributo, ou se você atribuir uma seqüência de caracteres vazia (""), ocorrerá um erro do analisador.

Aviso

Ao desenvolver um controle de servidor personalizado, você deve incluí-lo em um espaço para nome. Se você não fizer isso, não será acessível a partir de uma página ASP.NET. Para obter mais informações sobre como desenvolver controles de servidor ASP.NET personalizados, consulte Desenvolvendo Controles Personalizados ASP.NET Server.

Exemplo

O exemplo de código a seguir usa @ Register diretivas para declarar tagprefix e tagname aliases, juntamente com a atribuição de um src atributo para fazer referência a um controle de usuário em uma página da Web. A primeira parte do código é um controle de usuário simples consiste em um ASP.NET Calendar controle. A segunda parte do código é uma página que hospeda o controle. Observe que o tagprefix atributo atribui um valor de prefixo arbitrário para usar com a marca. The tagname atributo usa o valor do nome da classe atribuído ao controle de usuário (Embora o valor desse atributo é arbitrário e qualquer valor de seqüência de caracteres pode ser usado--não é necessário usar o nome de classe do controle que está sendo referenciado). The src atributo aponta para o arquivo de fonte para o controle de usuário, em relação à pasta raiz do aplicativo. O controle de usuário é referenciado no corpo da página por usando o prefixo, dois-pontos e o nome da marca, neste formulário: <uc1:CalendarUserControl runat="server" />.

<%@ Control ClassName="CalendarUserControl" %>
<asp:calendar id="Calendar1" runat="server" />


<%@ Page %>
<%@ register tagprefix="uc1" 
    tagname="CalendarUserControl" 
    src="~/CalendarUserControl.ascx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Calendar Page</title>
</head>
<body>
  <form id="form1" runat="server">
    <uc1:calendarusercontrol runat="server" />
  </form>
</body>
</html>

Consulte também

Conceitos

Visão geral da sintaxe de página da Web ASP.NET

Referência

Sintaxe diretiva 

Outros recursos

Controles de usuário do ASP.NET