Partilhar via


Compilação XAML em Xamarin.Forms

Opcionalmente, o XAML pode ser compilado diretamente na IL (linguagem intermediária) com o XAMLC (compilador XAML).

A compilação XAML oferece vários benefícios:

  • Executa verificação de tempo de compilação de XAML, notificando o usuário de quaisquer erros.
  • Elimina parte da carga e do tempo de instanciação para elementos XAML.
  • Ajuda a reduzir o tamanho do arquivo do assembly final não incluindo mais arquivos .XAML.

A compilação XAML está desabilitada por padrão na estrutura. No entanto, ele está habilitado nos modelos para novos projetos. Ele pode ser explicitamente habilitado ou desabilitado (XamlCompilationOptions.Skip) no nível do assembly e da classe adicionando o XamlCompilation atributo.

O exemplo de código a seguir demonstra a habilitação da compilação XAML no nível do assembly:

using Xamarin.Forms.Xaml;
...
[assembly: XamlCompilation (XamlCompilationOptions.Compile)]
namespace PhotoApp
{
  ...
}

Embora o atributo possa ser colocado em qualquer lugar, um bom lugar para colocá-lo é em AssemblyInfo.cs.

Neste exemplo, a verificação em tempo de compilação de todo o XAML contido no assembly será executada, com erros de XAML sendo relatados em tempo de compilação em vez de em tempo de execução. Portanto, o prefixo assembly do XamlCompilation atributo especifica que o atributo se aplica a todo o assembly.

Observação

O XamlCompilation atributo e a XamlCompilationOptions enumeração residem no namespace, que deve ser importado Xamarin.Forms.Xaml para usá-los.

O exemplo de código a seguir demonstra a habilitação da compilação XAML no nível da classe:

using Xamarin.Forms.Xaml;
...
[XamlCompilation (XamlCompilationOptions.Compile)]
public class HomePage : ContentPage
{
  ...
}

Neste exemplo, a verificação em tempo de compilação do XAML para a HomePage classe será executada e os erros serão relatados como parte do processo de compilação.

Observação

As associações compiladas podem ser habilitadas para melhorar o desempenho da associação de dados em Xamarin.Forms aplicativos. Para obter mais informações, confira Associações compiladas do Xamarin.Forms.