From 5ff46b88577da62f773fca2fa7de8d190c4c8e69 Mon Sep 17 00:00:00 2001 From: Steven He Date: Sat, 20 Aug 2022 18:13:05 +0900 Subject: [PATCH] Fixes --- src/Avalonia.Base/Animation/Animation.cs | 11 ++++++++--- src/Avalonia.Base/Avalonia.Base.csproj | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Base/Animation/Animation.cs b/src/Avalonia.Base/Animation/Animation.cs index c5c76f4929..7c03c988f8 100644 --- a/src/Avalonia.Base/Animation/Animation.cs +++ b/src/Avalonia.Base/Animation/Animation.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Reactive.Disposables; using System.Reactive.Linq; @@ -199,10 +200,14 @@ namespace Avalonia.Animation /// Sets the value of the Animator attached property for a setter. /// /// The animation setter. - public static void SetAnimator(IAnimationSetter setter) - where TAnimator : IAnimator, new() + /// The property animator value. + public static void SetAnimator(IAnimationSetter setter, +#if NET6_0_OR_GREATER + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor | DynamicallyAccessedMemberTypes.PublicMethods)] +#endif + Type value) { - s_animators[setter] = (typeof(TAnimator), () => new TAnimator()); + s_animators[setter] = (value, () => (IAnimator)Activator.CreateInstance(value)!); } private readonly static List<(Func Condition, Type Animator, Func Factory)> Animators = new() diff --git a/src/Avalonia.Base/Avalonia.Base.csproj b/src/Avalonia.Base/Avalonia.Base.csproj index 15feed388b..d091b9072d 100644 --- a/src/Avalonia.Base/Avalonia.Base.csproj +++ b/src/Avalonia.Base/Avalonia.Base.csproj @@ -6,6 +6,7 @@ True true $(BaseIntermediateOutputPath)\GeneratedFiles + true