Compilación de XAML en Xamarin.FormsXAML Compilation in Xamarin.Forms

XAML se puede compilar opcionalmente directamente en lenguaje intermedio (IL) con el compilador XAML (XAMLC).XAML can be optionally compiled directly into intermediate language (IL) with the XAML compiler (XAMLC).

Compilación de XAML ofrece una serie de ventajas:XAML compilation offers a number of a benefits:

  • Realiza la comprobación en tiempo de compilación de XAML, notificando al usuario de los errores.It performs compile-time checking of XAML, notifying the user of any errors.
  • Reduce parte del tiempo de carga y creación de instancias para los elementos XAML.It removes some of the load and instantiation time for XAML elements.
  • Facilita reducir el tamaño de archivo del ensamblado final al dejar de incluir archivos .xaml.It helps to reduce the file size of the final assembly by no longer including .xaml files.

Compilación de XAML está deshabilitado de forma predeterminada para garantizar la compatibilidad con versiones anteriores.XAML compilation is disabled by default to ensure backwards compatibility. Puede habilitarse en el nivel de clase y ensamblado agregando la XamlCompilation atributo.It can be enabled at both the assembly and class level by adding the XamlCompilation attribute.

En el ejemplo de código siguiente se muestra cómo habilitar la compilación de XAML en el nivel de ensamblado:The following code example demonstrates enabling XAML compilation at the assembly level:

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

En este ejemplo, se realizará la comprobación de todo el XAML contenido dentro del ensamblado de tiempo de compilación, con errores XAML que se notifica en tiempo de compilación en lugar de tiempo de ejecución.In this example, compile-time checking of all the XAML contained within the assembly will be performed, with XAML errors being reported at compile-time rather than run-time. Por lo tanto, el assembly prefijo para el XamlCompilation atributo especifica que el atributo se aplica a todo el ensamblado.Therefore, the assembly prefix to the XamlCompilation attribute specifies that the attribute applies to the entire assembly.

Nota

El XamlCompilation atributo y el XamlCompilationOptions enumeración residen en el Xamarin.Forms.Xaml espacio de nombres que debe importarse al usarlas.The XamlCompilation attribute and the XamlCompilationOptions enumeration reside in the Xamarin.Forms.Xaml namespace, which must be imported to use them.

En el ejemplo de código siguiente se muestra cómo habilitar la compilación de XAML en el nivel de clase:The following code example demonstrates enabling XAML compilation at the class level:

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

En este ejemplo, la comprobación de que el XAML para el tiempo de compilación la HomePage se realizará la clase y los errores se notifican como parte del proceso de compilación.In this example, compile-time checking of the XAML for the HomePage class will be performed and errors reported as part of the compilation process.

Nota

Enlaces compilados se pueden habilitar para mejorar el rendimiento de enlace de datos en las aplicaciones de Xamarin.Forms.Compiled bindings can be enabled to improve data binding performance in Xamarin.Forms applications. Para obtener más información, consulte compilado enlaces.For more information, see Compiled Bindings.