XamlCompilation(XamlCompilationOptions.Compile)] 在 Prism 模块中

XamlCompilation(XamlCompilationOptions.Compile)] In Prism modules where

我似乎明白要优化一个应用你需要添加以下内容 到您的应用 class

[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
 namespace MyAppNamespace
 {
     public partial class App 
     {
     }
 }

现在如果你有很多 Prism 模块,你在哪里添加这行代码

[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

非常感谢

您可以将它放在任何地方,但通常您会将它包含在 App.xaml.cs 中。 "assembly" 属性会将其应用于项目中的所有页面。

您需要在拥有 XAML 个文件的每个项目中使用该属性。一些通用规则:

  • 您可以将此放在个人 XAML 上,基于 Views/Pages 到 Opt-In 或 Opt-Out of Xaml 编译:

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

[XamlCompilation(XamlCompilationOptions.Skip)]
public class ViewB : ContentPage
{
}
  • 您可以像您展示的那样将其用作程序集属性,这是大多数人选择做的事情。

这里重要的是,您只能在每个项目中放置一次,而且是逐个项目的。您可以将它放在您选择的任何文件中,这取决于您的偏好。通常您会在以下位置之一看到它:

  • Properties/AssemblyInfo.cs。虽然对于 SDK 样式项目,大多数模板默认不再包含此文件,但许多人(包括我自己)仍然更喜欢在一个中心位置查找和添加程序集级别属性

  • App.xaml.cs喜欢:


[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
namespace AwesomeApp
{
    public partial class App : PrismApplication
    {
    }
}
  • 在驻留在单独项目中的 IModule 的实现中

[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
namespace AwesomeApp.Auth
{
    public class AuthModule : IModule
    {
    }
}