diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj b/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj
index eadaed435e..939efc60d1 100644
--- a/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj
+++ b/src/Markup/Avalonia.Markup.Xaml.Loader/Avalonia.Markup.Xaml.Loader.csproj
@@ -3,7 +3,7 @@
net6.0;netstandard2.0
true
- $(DefineConstants);XAMLX_INTERNAL
+ $(DefineConstants);XAMLX_INTERNAL;XAML_RUNTIME_LOADER
@@ -21,4 +21,6 @@
+
+
diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/AvaloniaRuntimeXamlLoader.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/AvaloniaRuntimeXamlLoader.cs
index 6f6420f66d..0368dea92f 100644
--- a/src/Markup/Avalonia.Markup.Xaml.Loader/AvaloniaRuntimeXamlLoader.cs
+++ b/src/Markup/Avalonia.Markup.Xaml.Loader/AvaloniaRuntimeXamlLoader.cs
@@ -1,9 +1,12 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Reflection;
using System.Text;
using Avalonia.Markup.Xaml.XamlIl;
+using Avalonia.Markup.Xaml.XamlIl.CompilerExtensions;
+
#nullable enable
namespace Avalonia.Markup.Xaml
{
@@ -18,6 +21,7 @@ namespace Avalonia.Markup.Xaml
/// The URI of the XAML being loaded.
/// Indicates whether the XAML is being loaded in design mode.
/// The loaded object.
+ [RequiresUnreferencedCode(XamlX.TrimmingMessages.DynamicXamlReference)]
public static object Load(string xaml, Assembly? localAssembly = null, object? rootInstance = null, Uri? uri = null, bool designMode = false)
{
xaml = xaml ?? throw new ArgumentNullException(nameof(xaml));
@@ -37,6 +41,7 @@ namespace Avalonia.Markup.Xaml
/// The URI of the XAML being loaded.
/// Indicates whether the XAML is being loaded in design mode.
/// The loaded object.
+ [RequiresUnreferencedCode(XamlX.TrimmingMessages.DynamicXamlReference)]
public static object Load(Stream stream, Assembly? localAssembly = null, object? rootInstance = null, Uri? uri = null,
bool designMode = false)
=> AvaloniaXamlIlRuntimeCompiler.Load(new RuntimeXamlLoaderDocument(uri, rootInstance, stream),
@@ -48,6 +53,7 @@ namespace Avalonia.Markup.Xaml
/// The stream containing the XAML.
/// Xaml loader configuration.
/// The loaded object.
+ [RequiresUnreferencedCode(XamlX.TrimmingMessages.DynamicXamlReference)]
public static object Load(RuntimeXamlLoaderDocument document, RuntimeXamlLoaderConfiguration? configuration = null)
=> AvaloniaXamlIlRuntimeCompiler.Load(document, configuration ?? new RuntimeXamlLoaderConfiguration());
@@ -57,6 +63,7 @@ namespace Avalonia.Markup.Xaml
/// Collection of documents.
/// Xaml loader configuration.
/// The loaded objects per each input document. If document was removed, the element by index is null.
+ [RequiresUnreferencedCode(XamlX.TrimmingMessages.DynamicXamlReference)]
public static IReadOnlyList