Skip to content

Commit 2f315e2

Browse files
authored
Fix issue with ReactiveUI 19.5.31 System.Text.Json (#612)
Xamarin does not support System.Text.Json due to the inclusion of System.Buffers, Xamarin falls back to Netstandard2.0 within the package causing the System.Buffers lib to load
1 parent 540fafe commit 2f315e2

10 files changed

+27
-30
lines changed

src/Directory.build.props

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@
3737
</ItemGroup>
3838
<ItemGroup>
3939
<PackageReference Include="Nerdbank.GitVersioning" Version="3.6.133" PrivateAssets="all" />
40-
<PackageReference Include="stylecop.analyzers" Version="1.2.0-beta.507" PrivateAssets="all" />
41-
<PackageReference Include="Roslynator.Analyzers" Version="4.6.2" PrivateAssets="All" />
40+
<PackageReference Include="stylecop.analyzers" Version="1.2.0-beta.556" PrivateAssets="all" />
41+
<PackageReference Include="Roslynator.Analyzers" Version="4.7.0" PrivateAssets="All" />
4242
</ItemGroup>
4343
<ItemGroup>
4444
<AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json" Link="stylecop.json" />

src/ReactiveUI.Validation.Tests/ReactiveUI.Validation.Tests.csproj

+6-6
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,18 @@
1111

1212
<ItemGroup>
1313
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
14-
<PackageReference Include="xunit" Version="2.6.2" />
14+
<PackageReference Include="xunit" Version="2.6.4" />
15+
<PackageReference Include="xunit.runner.console" Version="2.6.4" />
1516
<PackageReference Include="Xunit.StaFact" Version="1.1.11" />
1617
<PackageReference Include="Microsoft.Reactive.Testing" Version="6.0.0" />
17-
<PackageReference Include="PublicApiGenerator" Version="11.0.0" />
18-
<PackageReference Include="Verify.Xunit" Version="22.8.0" />
19-
<PackageReference Include="xunit.runner.console" Version="2.6.2" />
20-
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.4" />
18+
<PackageReference Include="PublicApiGenerator" Version="11.1.0" />
19+
<PackageReference Include="Verify.Xunit" Version="22.11.1" />
20+
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.6" />
2121
<PackageReference Include="coverlet.msbuild" Version="6.0.0">
2222
<PrivateAssets>all</PrivateAssets>
2323
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
2424
</PackageReference>
25-
<PackageReference Include="DiffEngine" Version="13.0.2" />
25+
<PackageReference Include="DiffEngine" Version="15.0.1" />
2626
</ItemGroup>
2727

2828
<ItemGroup>

src/ReactiveUI.Validation/Collections/ReadOnlyCollectionPooled.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ internal Enumerator(ReadOnlyCollectionPooled<T> readOnlyCollectionPooled)
5959
_current = default;
6060
}
6161

62-
public T Current => _current!;
62+
public readonly T Current => _current!;
6363

64-
object? IEnumerator.Current
64+
readonly object? IEnumerator.Current
6565
{
6666
get
6767
{

src/ReactiveUI.Validation/Collections/ValidationText.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static class ValidationText
1818
/// <summary>
1919
/// The none validation text singleton instance contains no items.
2020
/// </summary>
21-
public static readonly IValidationText None = new ArrayValidationText(Array.Empty<string>());
21+
public static readonly IValidationText None = new ArrayValidationText([]);
2222

2323
/// <summary>
2424
/// The empty validation text singleton instance contains single empty string.

src/ReactiveUI.Validation/Components/BasePropertyValidation.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ public abstract class BasePropertyValidation<TViewModel> : ReactiveObject, IDisp
2929
{
3030
[SuppressMessage("Usage", "CA2213:Disposable fields should be disposed", Justification = "Disposed by field _disposables.")]
3131
private readonly ReplaySubject<bool> _isValidSubject = new(1);
32-
private readonly HashSet<string> _propertyNames = new();
33-
private readonly CompositeDisposable _disposables = new();
32+
private readonly HashSet<string> _propertyNames = [];
33+
private readonly CompositeDisposable _disposables = [];
3434
private IConnectableObservable<IValidationState>? _connectedChange;
3535
private bool _isConnected;
3636
private bool _isValid;
@@ -171,7 +171,7 @@ public sealed class BasePropertyValidation<TViewModel, TViewModelProperty> : Bas
171171
private readonly IConnectableObservable<TViewModelProperty?> _valueConnectedObservable;
172172
private readonly Func<TViewModelProperty?, bool, IValidationText> _message;
173173
private readonly Func<TViewModelProperty?, bool> _isValidFunc;
174-
private readonly CompositeDisposable _disposables = new();
174+
private readonly CompositeDisposable _disposables = [];
175175
private bool _isConnected;
176176

177177
/// <summary>

src/ReactiveUI.Validation/Components/ObservableValidation.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,8 @@ public abstract class ObservableValidationBase<TViewModel, TValue> : ReactiveObj
241241
{
242242
[SuppressMessage("Usage", "CA2213:Disposable fields should be disposed", Justification = "Disposed by field _disposables.")]
243243
private readonly ReplaySubject<IValidationState> _isValidSubject = new(1);
244-
private readonly HashSet<string> _propertyNames = new();
245-
private readonly CompositeDisposable _disposables = new();
244+
private readonly HashSet<string> _propertyNames = [];
245+
private readonly CompositeDisposable _disposables = [];
246246
private readonly IConnectableObservable<IValidationState> _validityConnectedObservable;
247247
private bool _isActive;
248248
private bool _isValid;

src/ReactiveUI.Validation/Contexts/ValidationContext.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class ValidationContext : ReactiveObject, IDisposable, IValidationCompone
4242
private readonly ObservableAsPropertyHelper<IValidationText> _validationText;
4343
private readonly ObservableAsPropertyHelper<bool> _isValid;
4444

45-
private readonly CompositeDisposable _disposables = new();
45+
private readonly CompositeDisposable _disposables = [];
4646
private bool _isActive;
4747

4848
/// <summary>

src/ReactiveUI.Validation/Helpers/ReactiveValidationObject.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ namespace ReactiveUI.Validation.Helpers;
2727
/// </summary>
2828
public abstract class ReactiveValidationObject : ReactiveObject, IValidatableViewModel, INotifyDataErrorInfo
2929
{
30-
private readonly HashSet<string> _mentionedPropertyNames = new();
30+
private readonly HashSet<string> _mentionedPropertyNames = [];
3131
private readonly IValidationTextFormatter<string> _formatter;
3232
private bool _hasErrors;
3333

@@ -140,4 +140,4 @@ private void OnValidationStatusChange(IValidationComponent component)
140140
}
141141
}
142142
}
143-
}
143+
}
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="MSBuild.Sdk.Extras">
1+
<Project Sdk="MSBuild.Sdk.Extras">
22

33
<PropertyGroup>
44
<TargetFrameworks>MonoAndroid13.0;Xamarin.iOS10;Xamarin.Mac20;Xamarin.TVOS10;tizen40;netstandard2.0;net6.0;net7.0;net7.0-android;net7.0-ios;net7.0-tvos;net7.0-macos;net7.0-maccatalyst;net8.0;net8.0-android;net8.0-ios;net8.0-tvos;net8.0-macos;net8.0-maccatalyst</TargetFrameworks>
@@ -7,14 +7,12 @@
77
<Nullable>enable</Nullable>
88
</PropertyGroup>
99

10-
<ItemGroup>
11-
<PackageReference Include="ReactiveUI" Version="19.*" />
10+
<ItemGroup Condition="!$(TargetFramework.StartsWith('Xamarin'))">
11+
<PackageReference Include="ReactiveUI" Version="19.5.31" />
1212
</ItemGroup>
13-
14-
<ItemGroup Condition="$(TargetFramework.StartsWith('netstandard'))">
15-
<PackageReference Include="System.Buffers" Version="4.5.1" />
16-
</ItemGroup>
17-
<ItemGroup Condition="$(TargetFramework.StartsWith('net4'))">
18-
<PackageReference Include="System.Buffers" Version="4.5.1" />
13+
14+
<!--Xamarin does not support System.Text.Json due to the inclusion of System.Buffers, the latest version (19.5.31) of ReactiveUI includes System.Text.Json-->
15+
<ItemGroup Condition="$(TargetFramework.StartsWith('Xamarin'))">
16+
<PackageReference Include="ReactiveUI" Version="19.5.1" />
1917
</ItemGroup>
2018
</Project>

src/global.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
{
22
"sdk": {
33
"version": "8.0.10",
4-
"rollForward": "latestMinor",
5-
"allowPrerelease": true
4+
"rollForward": "latestMinor"
65
},
76
"msbuild-sdks": {
87
"MSBuild.Sdk.Extras": "3.0.44"

0 commit comments

Comments
 (0)