From e8c76d320ee387499b0816bab40f18c26e18f6f2 Mon Sep 17 00:00:00 2001 From: Glenn Watson <5834289+glennawatson@users.noreply.github.com> Date: Thu, 13 Aug 2026 11:47:05 +1000 Subject: [PATCH 1/2] refactor: keep one ComponentModelFallbackConverter for all platforms - The desktop and mobile platform groups each carried an identical copy, differing only in the mobile copy's Preserve attribute. - The survivor moves into ReactiveUI.Shared, which ReactiveUI and ReactiveUI.Reactive both already compile wholesale, so neither project file needs an entry for it. - Preserve(AllMembers) is ReactiveUI's own attribute and is inert off mobile, so one file serves every platform. --- .../ComponentModelFallbackConverter.cs | 4 +- .../net/ComponentModelFallbackConverter.cs | 42 ------------------- 2 files changed, 3 insertions(+), 43 deletions(-) rename src/{ReactiveUI/Platforms/mobile-common => ReactiveUI.Shared/Bindings/Converter}/ComponentModelFallbackConverter.cs (93%) delete mode 100644 src/ReactiveUI/Platforms/net/ComponentModelFallbackConverter.cs diff --git a/src/ReactiveUI/Platforms/mobile-common/ComponentModelFallbackConverter.cs b/src/ReactiveUI.Shared/Bindings/Converter/ComponentModelFallbackConverter.cs similarity index 93% rename from src/ReactiveUI/Platforms/mobile-common/ComponentModelFallbackConverter.cs rename to src/ReactiveUI.Shared/Bindings/Converter/ComponentModelFallbackConverter.cs index 65fdc543b2..f39fc3016b 100644 --- a/src/ReactiveUI/Platforms/mobile-common/ComponentModelFallbackConverter.cs +++ b/src/ReactiveUI.Shared/Bindings/Converter/ComponentModelFallbackConverter.cs @@ -11,6 +11,7 @@ namespace ReactiveUI.Reactive; #else namespace ReactiveUI; #endif + /// /// Fallback converter using System.ComponentModel.TypeDescriptor for reflection-based type conversion. /// This converter is consulted only when no typed converter matches. @@ -18,7 +19,8 @@ namespace ReactiveUI; /// /// This converter uses reflection and is not AOT-safe. It should be used as a last resort when no typed converter can /// handle the conversion. The shared conversion logic lives in . The -/// keeps the converter from being stripped by the mobile linker. +/// keeps the converter from being stripped by the mobile linker; it is ReactiveUI's +/// own attribute and is inert on the desktop targets, so one file serves every platform. /// [Preserve(AllMembers = true)] public sealed class ComponentModelFallbackConverter : IBindingFallbackConverter diff --git a/src/ReactiveUI/Platforms/net/ComponentModelFallbackConverter.cs b/src/ReactiveUI/Platforms/net/ComponentModelFallbackConverter.cs deleted file mode 100644 index c9af286621..0000000000 --- a/src/ReactiveUI/Platforms/net/ComponentModelFallbackConverter.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) 2009-2026 .NET Foundation and Contributors. All rights reserved. -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for full license information. - -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; - -#if REACTIVE_SHIM -namespace ReactiveUI.Reactive; -#else -namespace ReactiveUI; -#endif - -/// -/// Fallback converter using System.ComponentModel.TypeDescriptor for reflection-based type conversion. -/// This converter is consulted only when no typed converter matches. -/// -/// -/// This converter uses reflection and is not AOT-safe. It should be used as a last resort when no typed converter can -/// handle the conversion. The shared conversion logic lives in . -/// -public sealed class ComponentModelFallbackConverter : IBindingFallbackConverter -{ - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public int GetAffinityForObjects( - [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type fromType, - [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type toType) => - ComponentModelConversion.GetAffinity(fromType, toType); - - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public bool TryConvert( - [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type fromType, - object from, - [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type toType, - object? conversionHint, - [NotNullWhen(true)] out object? result) => - ComponentModelConversion.TryConvert(this, fromType, from, toType, out result); -} From 5710233d7be7dbbd6a7fd68c8a9f2a914ee8fe52 Mon Sep 17 00:00:00 2001 From: Glenn Watson <5834289+glennawatson@users.noreply.github.com> Date: Thu, 13 Aug 2026 16:20:24 +1000 Subject: [PATCH 2/2] build: record [Preserve] on the shared ComponentModelFallbackConverter Sharing one file across every platform gives the desktop targets the [Preserve(AllMembers = true)] the mobile copy already carried, which is a public API change the baselines have to state. - Regenerate the 22 affected baselines: ReactiveUI and ReactiveUI.Reactive across net8/9/10/11, net462/472/481 and the four -windows targets. - The Apple and Android baselines already record the attribute and are unchanged. --- .../PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt | 1 + src/ReactiveUI.Reactive/PublicAPI/net10.0/PublicAPI.txt | 1 + .../PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt | 1 + src/ReactiveUI.Reactive/PublicAPI/net11.0/PublicAPI.txt | 1 + src/ReactiveUI.Reactive/PublicAPI/net462/PublicAPI.txt | 1 + src/ReactiveUI.Reactive/PublicAPI/net472/PublicAPI.txt | 1 + src/ReactiveUI.Reactive/PublicAPI/net481/PublicAPI.txt | 1 + .../PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt | 1 + src/ReactiveUI.Reactive/PublicAPI/net8.0/PublicAPI.txt | 1 + .../PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt | 1 + src/ReactiveUI.Reactive/PublicAPI/net9.0/PublicAPI.txt | 1 + .../PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt | 1 + src/ReactiveUI/PublicAPI/net10.0/PublicAPI.txt | 1 + .../PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt | 1 + src/ReactiveUI/PublicAPI/net11.0/PublicAPI.txt | 1 + src/ReactiveUI/PublicAPI/net462/PublicAPI.txt | 1 + src/ReactiveUI/PublicAPI/net472/PublicAPI.txt | 1 + src/ReactiveUI/PublicAPI/net481/PublicAPI.txt | 1 + .../PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt | 1 + src/ReactiveUI/PublicAPI/net8.0/PublicAPI.txt | 1 + .../PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt | 1 + src/ReactiveUI/PublicAPI/net9.0/PublicAPI.txt | 1 + 22 files changed, 22 insertions(+) diff --git a/src/ReactiveUI.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt index ff8fb17580..6a9c41014f 100644 --- a/src/ReactiveUI.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt +++ b/src/ReactiveUI.Reactive/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt @@ -167,6 +167,7 @@ namespace ReactiveUI.Reactive public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI.Reactive/PublicAPI/net10.0/PublicAPI.txt b/src/ReactiveUI.Reactive/PublicAPI/net10.0/PublicAPI.txt index a922810c9b..90d5a40568 100644 --- a/src/ReactiveUI.Reactive/PublicAPI/net10.0/PublicAPI.txt +++ b/src/ReactiveUI.Reactive/PublicAPI/net10.0/PublicAPI.txt @@ -166,6 +166,7 @@ namespace ReactiveUI.Reactive public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt index ff8fb17580..6a9c41014f 100644 --- a/src/ReactiveUI.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt +++ b/src/ReactiveUI.Reactive/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt @@ -167,6 +167,7 @@ namespace ReactiveUI.Reactive public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI.Reactive/PublicAPI/net11.0/PublicAPI.txt b/src/ReactiveUI.Reactive/PublicAPI/net11.0/PublicAPI.txt index a922810c9b..90d5a40568 100644 --- a/src/ReactiveUI.Reactive/PublicAPI/net11.0/PublicAPI.txt +++ b/src/ReactiveUI.Reactive/PublicAPI/net11.0/PublicAPI.txt @@ -166,6 +166,7 @@ namespace ReactiveUI.Reactive public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI.Reactive/PublicAPI/net462/PublicAPI.txt b/src/ReactiveUI.Reactive/PublicAPI/net462/PublicAPI.txt index 4a121a70ed..428445bdc9 100644 --- a/src/ReactiveUI.Reactive/PublicAPI/net462/PublicAPI.txt +++ b/src/ReactiveUI.Reactive/PublicAPI/net462/PublicAPI.txt @@ -132,6 +132,7 @@ namespace ReactiveUI.Reactive public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI.Reactive/PublicAPI/net472/PublicAPI.txt b/src/ReactiveUI.Reactive/PublicAPI/net472/PublicAPI.txt index 4a121a70ed..428445bdc9 100644 --- a/src/ReactiveUI.Reactive/PublicAPI/net472/PublicAPI.txt +++ b/src/ReactiveUI.Reactive/PublicAPI/net472/PublicAPI.txt @@ -132,6 +132,7 @@ namespace ReactiveUI.Reactive public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI.Reactive/PublicAPI/net481/PublicAPI.txt b/src/ReactiveUI.Reactive/PublicAPI/net481/PublicAPI.txt index 4a121a70ed..428445bdc9 100644 --- a/src/ReactiveUI.Reactive/PublicAPI/net481/PublicAPI.txt +++ b/src/ReactiveUI.Reactive/PublicAPI/net481/PublicAPI.txt @@ -132,6 +132,7 @@ namespace ReactiveUI.Reactive public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI.Reactive/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Reactive/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt index ff8fb17580..6a9c41014f 100644 --- a/src/ReactiveUI.Reactive/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt +++ b/src/ReactiveUI.Reactive/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt @@ -167,6 +167,7 @@ namespace ReactiveUI.Reactive public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI.Reactive/PublicAPI/net8.0/PublicAPI.txt b/src/ReactiveUI.Reactive/PublicAPI/net8.0/PublicAPI.txt index a922810c9b..90d5a40568 100644 --- a/src/ReactiveUI.Reactive/PublicAPI/net8.0/PublicAPI.txt +++ b/src/ReactiveUI.Reactive/PublicAPI/net8.0/PublicAPI.txt @@ -166,6 +166,7 @@ namespace ReactiveUI.Reactive public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI.Reactive/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI.Reactive/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt index ff8fb17580..6a9c41014f 100644 --- a/src/ReactiveUI.Reactive/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt +++ b/src/ReactiveUI.Reactive/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt @@ -167,6 +167,7 @@ namespace ReactiveUI.Reactive public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI.Reactive/PublicAPI/net9.0/PublicAPI.txt b/src/ReactiveUI.Reactive/PublicAPI/net9.0/PublicAPI.txt index a922810c9b..90d5a40568 100644 --- a/src/ReactiveUI.Reactive/PublicAPI/net9.0/PublicAPI.txt +++ b/src/ReactiveUI.Reactive/PublicAPI/net9.0/PublicAPI.txt @@ -166,6 +166,7 @@ namespace ReactiveUI.Reactive public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt index dbd4f9c370..c1a475fbe7 100644 --- a/src/ReactiveUI/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt +++ b/src/ReactiveUI/PublicAPI/net10.0-windows10.0.19041.0/PublicAPI.txt @@ -176,6 +176,7 @@ namespace ReactiveUI public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI/PublicAPI/net10.0/PublicAPI.txt b/src/ReactiveUI/PublicAPI/net10.0/PublicAPI.txt index 1e8d960df5..d45d1bf7c3 100644 --- a/src/ReactiveUI/PublicAPI/net10.0/PublicAPI.txt +++ b/src/ReactiveUI/PublicAPI/net10.0/PublicAPI.txt @@ -175,6 +175,7 @@ namespace ReactiveUI public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt index dbd4f9c370..c1a475fbe7 100644 --- a/src/ReactiveUI/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt +++ b/src/ReactiveUI/PublicAPI/net11.0-windows10.0.19041.0/PublicAPI.txt @@ -176,6 +176,7 @@ namespace ReactiveUI public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI/PublicAPI/net11.0/PublicAPI.txt b/src/ReactiveUI/PublicAPI/net11.0/PublicAPI.txt index 1e8d960df5..d45d1bf7c3 100644 --- a/src/ReactiveUI/PublicAPI/net11.0/PublicAPI.txt +++ b/src/ReactiveUI/PublicAPI/net11.0/PublicAPI.txt @@ -175,6 +175,7 @@ namespace ReactiveUI public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI/PublicAPI/net462/PublicAPI.txt b/src/ReactiveUI/PublicAPI/net462/PublicAPI.txt index c4ccd32f01..e5fd90a4af 100644 --- a/src/ReactiveUI/PublicAPI/net462/PublicAPI.txt +++ b/src/ReactiveUI/PublicAPI/net462/PublicAPI.txt @@ -141,6 +141,7 @@ namespace ReactiveUI public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI/PublicAPI/net472/PublicAPI.txt b/src/ReactiveUI/PublicAPI/net472/PublicAPI.txt index c4ccd32f01..e5fd90a4af 100644 --- a/src/ReactiveUI/PublicAPI/net472/PublicAPI.txt +++ b/src/ReactiveUI/PublicAPI/net472/PublicAPI.txt @@ -141,6 +141,7 @@ namespace ReactiveUI public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI/PublicAPI/net481/PublicAPI.txt b/src/ReactiveUI/PublicAPI/net481/PublicAPI.txt index c4ccd32f01..e5fd90a4af 100644 --- a/src/ReactiveUI/PublicAPI/net481/PublicAPI.txt +++ b/src/ReactiveUI/PublicAPI/net481/PublicAPI.txt @@ -141,6 +141,7 @@ namespace ReactiveUI public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt index dbd4f9c370..c1a475fbe7 100644 --- a/src/ReactiveUI/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt +++ b/src/ReactiveUI/PublicAPI/net8.0-windows10.0.19041.0/PublicAPI.txt @@ -176,6 +176,7 @@ namespace ReactiveUI public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI/PublicAPI/net8.0/PublicAPI.txt b/src/ReactiveUI/PublicAPI/net8.0/PublicAPI.txt index 1e8d960df5..d45d1bf7c3 100644 --- a/src/ReactiveUI/PublicAPI/net8.0/PublicAPI.txt +++ b/src/ReactiveUI/PublicAPI/net8.0/PublicAPI.txt @@ -175,6 +175,7 @@ namespace ReactiveUI public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt b/src/ReactiveUI/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt index dbd4f9c370..c1a475fbe7 100644 --- a/src/ReactiveUI/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt +++ b/src/ReactiveUI/PublicAPI/net9.0-windows10.0.19041.0/PublicAPI.txt @@ -176,6 +176,7 @@ namespace ReactiveUI public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { } diff --git a/src/ReactiveUI/PublicAPI/net9.0/PublicAPI.txt b/src/ReactiveUI/PublicAPI/net9.0/PublicAPI.txt index 1e8d960df5..d45d1bf7c3 100644 --- a/src/ReactiveUI/PublicAPI/net9.0/PublicAPI.txt +++ b/src/ReactiveUI/PublicAPI/net9.0/PublicAPI.txt @@ -175,6 +175,7 @@ namespace ReactiveUI public ReactiveUI.IReactiveBinding BindCommand(TViewModel? viewModel, System.Linq.Expressions.Expression> propertyName, System.Linq.Expressions.Expression> controlName, System.Linq.Expressions.Expression> withParameter, string? toEvent) where TViewModel : class where TProp : System.Windows.Input.ICommand where TControl : class { } } } + [ReactiveUI.Preserve(AllMembers=true)] public sealed class ComponentModelFallbackConverter : ReactiveUI.IBindingFallbackConverter { public ComponentModelFallbackConverter() { }