diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlDeferredResourceTransformer.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlDeferredResourceTransformer.cs index 59bb016140c..c4ee5df1daa 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlDeferredResourceTransformer.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlDeferredResourceTransformer.cs @@ -43,9 +43,17 @@ public IXamlAstNode Transform(AstTransformationContext context, IXamlAstNode nod private static bool ShouldBeDeferred(IXamlAstValueNode node) { + var clrType = node.Type.GetClrType(); + // XAML compiler is currently strict about value types, allowing them to be created only through converters. // At the moment it should be safe to not defer structs. - if (node.Type.GetClrType().IsValueType) + if (clrType.IsValueType) + { + return false; + } + + // Never defer strings. + if (clrType.FullName == "System.String") { return false; }