| File: XamlCompilationAttribute.cs | Web Access |
| Project: src\src\Controls\src\Xaml\Controls.Xaml.csproj (Microsoft.Maui.Controls.Xaml) |
using System; using System.Reflection; using System.Runtime.CompilerServices; namespace Microsoft.Maui.Controls.Xaml { [Flags] public enum XamlCompilationOptions { Skip = 1 << 0, Compile = 1 << 1 } [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Module | AttributeTargets.Class, Inherited = false)] public sealed class XamlCompilationAttribute : Attribute { public XamlCompilationAttribute(XamlCompilationOptions xamlCompilationOptions) { XamlCompilationOptions = xamlCompilationOptions; } public XamlCompilationOptions XamlCompilationOptions { get; set; } } static class XamlCExtensions { public static bool IsCompiled(this Type type) { var attr = type.GetCustomAttribute<XamlCompilationAttribute>(); if (attr != null) return attr.XamlCompilationOptions == XamlCompilationOptions.Compile; attr = type.Module.GetCustomAttribute<XamlCompilationAttribute>(); if (attr != null) return attr.XamlCompilationOptions == XamlCompilationOptions.Compile; attr = type.Assembly.GetCustomAttribute<XamlCompilationAttribute>(); if (attr != null) return attr.XamlCompilationOptions == XamlCompilationOptions.Compile; return false; } } }