diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index c2542f28fa..0cb6e71de3 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -4,7 +4,7 @@
true
- 16.0.1
+ 16.1.1
1.13.1.4
2.8.4.1
@@ -16,7 +16,8 @@
-
+
+
diff --git a/src/ReactiveUI.AndroidX/Builder/AndroidXReactiveUIBuilderExtensions.cs b/src/ReactiveUI.AndroidX/Builder/AndroidXReactiveUIBuilderExtensions.cs
index 4dbcb6aaa8..888d25e65c 100644
--- a/src/ReactiveUI.AndroidX/Builder/AndroidXReactiveUIBuilderExtensions.cs
+++ b/src/ReactiveUI.AndroidX/Builder/AndroidXReactiveUIBuilderExtensions.cs
@@ -25,7 +25,7 @@ public static class AndroidXReactiveUIBuilderExtensions
///
/// The builder instance.
/// The builder instance for chaining.
- public static ReactiveUIBuilder WithAndroidX(this ReactiveUIBuilder builder)
+ public static IReactiveUIBuilder WithAndroidX(this IReactiveUIBuilder builder)
{
if (builder is null)
{
@@ -42,7 +42,7 @@ public static ReactiveUIBuilder WithAndroidX(this ReactiveUIBuilder builder)
///
/// The builder.
/// The builder instance for chaining.
- public static ReactiveUIBuilder WithAndroidXScheduler(this ReactiveUIBuilder builder)
+ public static IReactiveUIBuilder WithAndroidXScheduler(this IReactiveUIBuilder builder)
{
if (builder is null)
{
diff --git a/src/ReactiveUI.AndroidX/ReactiveUI.AndroidX.csproj b/src/ReactiveUI.AndroidX/ReactiveUI.AndroidX.csproj
index 553336a9d8..4b4ab206b6 100644
--- a/src/ReactiveUI.AndroidX/ReactiveUI.AndroidX.csproj
+++ b/src/ReactiveUI.AndroidX/ReactiveUI.AndroidX.csproj
@@ -12,6 +12,7 @@
+
diff --git a/src/ReactiveUI.AndroidX/Registrations.cs b/src/ReactiveUI.AndroidX/Registrations.cs
index ba4732f505..c5cc0c6c8a 100644
--- a/src/ReactiveUI.AndroidX/Registrations.cs
+++ b/src/ReactiveUI.AndroidX/Registrations.cs
@@ -14,12 +14,6 @@ namespace ReactiveUI.AndroidX;
public class Registrations : IWantsToRegisterStuff
{
///
-#if NET6_0_OR_GREATER
- [RequiresDynamicCode("Register uses methods that require dynamic code generation")]
- [RequiresUnreferencedCode("Register uses methods that may require unreferenced code")]
- [SuppressMessage("Trimming", "IL2046:'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.", Justification = "Not all paths use reflection")]
- [SuppressMessage("AOT", "IL3051:'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.", Justification = "Not all paths use reflection")]
-#endif
public void Register(Action, Type> registerFunction)
{
#if NET6_0_OR_GREATER
diff --git a/src/ReactiveUI.Blazor/Builder/BlazorReactiveUIBuilderExtensions.cs b/src/ReactiveUI.Blazor/Builder/BlazorReactiveUIBuilderExtensions.cs
index 7e417c9ec8..671b3790ed 100644
--- a/src/ReactiveUI.Blazor/Builder/BlazorReactiveUIBuilderExtensions.cs
+++ b/src/ReactiveUI.Blazor/Builder/BlazorReactiveUIBuilderExtensions.cs
@@ -23,7 +23,7 @@ public static class BlazorReactiveUIBuilderExtensions
///
/// The builder instance.
/// The builder instance for chaining.
- public static ReactiveUIBuilder WithBlazor(this ReactiveUIBuilder builder)
+ public static IReactiveUIBuilder WithBlazor(this IReactiveUIBuilder builder)
{
if (builder is null)
{
@@ -40,7 +40,7 @@ public static ReactiveUIBuilder WithBlazor(this ReactiveUIBuilder builder)
///
/// The builder.
/// The builder instance for chaining.
- public static ReactiveUIBuilder WithBlazorScheduler(this ReactiveUIBuilder builder)
+ public static IReactiveUIBuilder WithBlazorScheduler(this IReactiveUIBuilder builder)
{
if (builder is null)
{
diff --git a/src/ReactiveUI.Blazor/ReactiveUI.Blazor.csproj b/src/ReactiveUI.Blazor/ReactiveUI.Blazor.csproj
index fa5fbf69d5..caf115df05 100644
--- a/src/ReactiveUI.Blazor/ReactiveUI.Blazor.csproj
+++ b/src/ReactiveUI.Blazor/ReactiveUI.Blazor.csproj
@@ -8,6 +8,7 @@
+
diff --git a/src/ReactiveUI.Blend/ReactiveUI.Blend.csproj b/src/ReactiveUI.Blend/ReactiveUI.Blend.csproj
index f4072508d7..e1f61abf68 100644
--- a/src/ReactiveUI.Blend/ReactiveUI.Blend.csproj
+++ b/src/ReactiveUI.Blend/ReactiveUI.Blend.csproj
@@ -18,6 +18,7 @@
+
diff --git a/src/ReactiveUI.Drawing/Builder/ReactiveUIBuilderDrawingExtensions.cs b/src/ReactiveUI.Drawing/Builder/ReactiveUIBuilderDrawingExtensions.cs
index 36fa5df418..6d5f9432d9 100644
--- a/src/ReactiveUI.Drawing/Builder/ReactiveUIBuilderDrawingExtensions.cs
+++ b/src/ReactiveUI.Drawing/Builder/ReactiveUIBuilderDrawingExtensions.cs
@@ -15,7 +15,7 @@ public static class ReactiveUIBuilderDrawingExtensions
///
/// The builder instance.
/// The builder instance for method chaining.
- public static ReactiveUIBuilder WithDrawing(this ReactiveUIBuilder builder)
+ public static IReactiveUIBuilder WithDrawing(this IReactiveUIBuilder builder)
{
if (builder is null)
{
diff --git a/src/ReactiveUI.Drawing/ReactiveUI.Drawing.csproj b/src/ReactiveUI.Drawing/ReactiveUI.Drawing.csproj
index d493a24d9b..416fa50350 100644
--- a/src/ReactiveUI.Drawing/ReactiveUI.Drawing.csproj
+++ b/src/ReactiveUI.Drawing/ReactiveUI.Drawing.csproj
@@ -24,5 +24,6 @@
+
\ No newline at end of file
diff --git a/src/ReactiveUI.Maui/Builder/MauiReactiveUIBuilderExtensions.cs b/src/ReactiveUI.Maui/Builder/MauiReactiveUIBuilderExtensions.cs
index 7db88f5631..329c6a10f0 100644
--- a/src/ReactiveUI.Maui/Builder/MauiReactiveUIBuilderExtensions.cs
+++ b/src/ReactiveUI.Maui/Builder/MauiReactiveUIBuilderExtensions.cs
@@ -26,7 +26,7 @@ public static class MauiReactiveUIBuilderExtensions
/// The builder instance.
/// The MAUI dispatcher to use for the main thread scheduler.
/// The builder instance for chaining.
- public static ReactiveUIBuilder WithMaui(this ReactiveUIBuilder builder, IDispatcher? dispatcher = null)
+ public static IReactiveUIBuilder WithMaui(this IReactiveUIBuilder builder, IDispatcher? dispatcher = null)
{
if (builder is null)
{
@@ -43,7 +43,7 @@ public static ReactiveUIBuilder WithMaui(this ReactiveUIBuilder builder, IDispat
///
/// The builder.
/// The builder instance for chaining.
- public static ReactiveUIBuilder WithMauiScheduler(this ReactiveUIBuilder builder)
+ public static IReactiveUIBuilder WithMauiScheduler(this IReactiveUIBuilder builder)
{
if (builder is null)
{
diff --git a/src/ReactiveUI.Maui/Common/ReactivePage.cs b/src/ReactiveUI.Maui/Common/ReactivePage.cs
index 5254d622ca..2dfda8d0d5 100644
--- a/src/ReactiveUI.Maui/Common/ReactivePage.cs
+++ b/src/ReactiveUI.Maui/Common/ReactivePage.cs
@@ -83,6 +83,7 @@ namespace ReactiveUI;
[RequiresDynamicCode("ReactivePage uses methods that require dynamic code generation")]
[RequiresUnreferencedCode("ReactivePage uses methods that may require unreferenced code")]
#endif
+[SuppressMessage("WinRT", "CsWinRT1029:Types used in signatures should be WinRT types", Justification = "This is a netstandard2.0 library")]
public partial class ReactivePage :
Page, IViewFor
where TViewModel : class
diff --git a/src/ReactiveUI.Maui/Common/ReactiveUserControl.cs b/src/ReactiveUI.Maui/Common/ReactiveUserControl.cs
index 03a887e7fc..2ffdd8965f 100644
--- a/src/ReactiveUI.Maui/Common/ReactiveUserControl.cs
+++ b/src/ReactiveUI.Maui/Common/ReactiveUserControl.cs
@@ -76,6 +76,7 @@ namespace ReactiveUI;
///
/// The type of the view model backing the view.
///
+[SuppressMessage("WinRT", "CsWinRT1029:Types used in signatures should be WinRT types", Justification = "This is a netstandard2.0 library")]
public partial class ReactiveUserControl :
UserControl, IViewFor
where TViewModel : class
diff --git a/src/ReactiveUI.Maui/ReactiveUI.Maui.csproj b/src/ReactiveUI.Maui/ReactiveUI.Maui.csproj
index 144d1e5241..76bb6cc9fc 100644
--- a/src/ReactiveUI.Maui/ReactiveUI.Maui.csproj
+++ b/src/ReactiveUI.Maui/ReactiveUI.Maui.csproj
@@ -21,11 +21,12 @@
-
+
+
diff --git a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet8_0.verified.txt b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet8_0.verified.txt
index 4badcd8c11..b5c07bd246 100644
--- a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet8_0.verified.txt
+++ b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet8_0.verified.txt
@@ -85,18 +85,22 @@ namespace ReactiveUI
public override System.IObservable> Execute(TParam parameter) { }
public override System.IDisposable Subscribe(System.IObserver> observer) { }
}
- [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("CommandBinder uses RxApp initialization which requires dynamic code generation")]
- [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("CommandBinder uses RxApp initialization which may require unreferenced code")]
public static class CommandBinder
{
+ [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("This method uses reflection to access properties by name.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("This method uses reflection to access properties by name.")]
public static ReactiveUI.IReactiveBinding BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, string? toEvent = null)
where TView : class, ReactiveUI.IViewFor
where TViewModel : class
where TProp : System.Windows.Input.ICommand { }
+ [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("This method uses reflection to access properties by name.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("This method uses reflection to access properties by name.")]
public static ReactiveUI.IReactiveBinding BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.IObservable withParameter, string? toEvent = null)
where TView : class, ReactiveUI.IViewFor
where TViewModel : class
where TProp : System.Windows.Input.ICommand { }
+ [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("This method uses reflection to access properties by name.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("This method uses reflection to access properties by name.")]
public static ReactiveUI.IReactiveBinding BindCommand(this TView view, TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent = null)
where TView : class, ReactiveUI.IViewFor
where TViewModel : class
@@ -105,16 +109,14 @@ namespace ReactiveUI
public class CommandBinderImplementation : Splat.IEnableLogger
{
public CommandBinderImplementation() { }
- [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("BindCommand uses ViewModelWhenAnyValue which requires dynamic code generation")]
- [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("BindCommand uses ViewModelWhenAnyValue which may reference members that could be " +
- "trimmed")]
+ [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("This method uses reflection to access properties by name.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("This method uses reflection to access properties by name.")]
public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, TView view, System.Linq.Expressions.Expression> vmProperty, System.Linq.Expressions.Expression> controlProperty, System.IObservable withParameter, string? toEvent = null)
where TView : class, ReactiveUI.IViewFor
where TViewModel : class
where TProp : System.Windows.Input.ICommand { }
- [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("BindCommand uses ViewModelWhenAnyValue which requires dynamic code generation")]
- [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("BindCommand uses ViewModelWhenAnyValue which may reference members that could be " +
- "trimmed")]
+ [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("This method uses reflection to access properties by name.")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("This method uses reflection to access properties by name.")]
public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, TView view, System.Linq.Expressions.Expression> vmProperty, System.Linq.Expressions.Expression> controlProperty, System.Linq.Expressions.Expression> withParameter, string? toEvent = null)
where TView : class, ReactiveUI.IViewFor
where TViewModel : class
@@ -138,8 +140,8 @@ namespace ReactiveUI
public class CreatesCommandBindingViaCommandParameter : ReactiveUI.ICreatesCommandBinding
{
public CreatesCommandBindingViaCommandParameter() { }
- [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Property access requires dynamic code generation")]
- [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Property access may reference members that could be trimmed")]
+ [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("BindCommandToObject uses methods that require dynamic code generation")]
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("BindCommandToObject uses methods that may require unreferenced code")]
public System.IDisposable? BindCommandToObject(System.Windows.Input.ICommand? command, object? target, System.IObservable