From 28d7c1c3bdfe91ea464c9d0ada61a9b5d738ef26 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sun, 28 May 2023 23:44:15 -0400 Subject: [PATCH] Adjust transformers and comments --- samples/Sandbox/Sandbox.csproj | 1 + src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs | 2 +- .../GroupTransformers/XamlIncludeGroupTransformer.cs | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/samples/Sandbox/Sandbox.csproj b/samples/Sandbox/Sandbox.csproj index d2e66988e0..7a57a13529 100644 --- a/samples/Sandbox/Sandbox.csproj +++ b/samples/Sandbox/Sandbox.csproj @@ -5,6 +5,7 @@ net6.0 true true + diff --git a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs index 6992701a5a..6718faeb68 100644 --- a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs +++ b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs @@ -304,7 +304,7 @@ namespace Avalonia.Build.Tasks || "Internal".Equals(classModifierText, StringComparison.OrdinalIgnoreCase)) classModifierPublic = false; else - throw new XamlParseException("Invalid value for x:ClassModifier. Expected value are: Public, NotPublic.", precompileDirective); + throw new XamlParseException("Invalid value for x:ClassModifier. Expected value are: Public, NotPublic (internal).", precompileDirective); } var classDirective = initialRoot.Children.OfType() diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/GroupTransformers/XamlIncludeGroupTransformer.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/GroupTransformers/XamlIncludeGroupTransformer.cs index b6a4b599fa..28a48e5855 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/GroupTransformers/XamlIncludeGroupTransformer.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/GroupTransformers/XamlIncludeGroupTransformer.cs @@ -108,7 +108,7 @@ internal class AvaloniaXamlIncludeTransformer : IXamlAstGroupTransformer } var relativeName = "Build:" + assetPath.Substring(assemblyNameSeparator); - var buildMethod = avaResType.FindMethod(m => m.Name == relativeName); + var buildMethod = avaResType.FindMethod(m => m.Name == relativeName && m.IsPublic); if (buildMethod is not null) { return FromMethod(context, buildMethod, sourceUriNode, expectedLoadedType, node, assetPathUri, assembly, additionalProperties); @@ -119,7 +119,7 @@ internal class AvaloniaXamlIncludeTransformer : IXamlAstGroupTransformer } return context.ParseError( - $"Unable to resolve XAML resource \"{assetPathUri}\" in the \"{assembly}\" assembly.", + $"Unable to resolve XAML resource \"{assetPathUri}\" in the \"{assembly}\" assembly. Make sure this file exists and is public.", sourceUriNode, node); }