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.