是否有必要在Xamarin Forms应用程序的每个类上方添加[XamlCompilation(XamlCompilationOptions.Compile)]?

时间:2018-12-13 07:49:04

标签: c# xamarin xamarin.forms

我想我之前已经读过了,这仅是App类所需要的,但是现在当我进入Xamarin Form官方模板中的示例选项卡式应用程序时,我看到它被添加到每个类之上。

有人可以确认。当添加一个类时还是仅一个类?

enter image description here

3 个答案:

答案 0 :(得分:3)

否,您只能添加一个程序集级别属性,使其包含所有XAML文件:

[assembly: XamlCompilation (XamlCompilationOptions.Compile)]

re:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/xamlc

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

答案 1 :(得分:1)

两者都是可以接受的。

如果要在整个应用程序中启用已编译的XAML,则只需设置 [程序集:XamlCompilation(XamlCompilationOptions.Compile)] 恰好位于App.cs文件中名称空间的上方,如下所示:

[assembly: XamlCompilation (XamlCompilationOptions.Compile)]
namespace App
{
   ....

}

如果要启用每个文件,则在类级别将其设置如下。

[XamlCompilation (XamlCompilationOptions.Compile)]
public class TestPage : ContentPage
{
    ....
}

有关更多信息,请访问:

https://blog.xamarin.com/optimizing-xamarin-forms-apps-for-maximum-performance/

答案 2 :(得分:-1)

本质是提高速度和整体性能,因此使用SushiHangover解释的任何XamlCompilation形式都很重要。

不过,要进一步提高速度,可以在Xamarin Forms初始化之前,将此代码添加到Android项目中的MainActivity.cs中。

 Xamarin.Forms.Forms.SetFlags("FastRenderers_Experimental");