Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Change NavigationStack as DataMember #3379

Merged
merged 6 commits into from
Oct 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/ReactiveUI.Blazor/ReactiveUI.Blazor.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
</ItemGroup>

<ItemGroup Condition=" $(TargetFramework.StartsWith('net6')) ">
<PackageReference Include="Microsoft.AspNetCore.Components" Version="6.0.8" />
<PackageReference Include="Microsoft.AspNetCore.Components" Version="6.0.9" />
</ItemGroup>

<ItemGroup>
Expand Down
9 changes: 9 additions & 0 deletions src/ReactiveUI.Drawing/ReactiveUI.Drawing.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@
</Reference>
</ItemGroup>

<ItemGroup Condition=" $(TargetFramework.StartsWith('Xamarin.Mac')) ">
<Reference Include="Xamarin.Mac">
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Preview\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Preview\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
</Reference>
</ItemGroup>

<ItemGroup>
<Compile Remove="Resources\**" />
<EmbeddedResource Remove="Resources\**" />
Expand Down
3 changes: 0 additions & 3 deletions src/ReactiveUI.Fody.Analyzer/ReactiveUI.Fody.Analyzer.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,4 @@
<PackageReference Include="System.Collections.Immutable" Version="6.0.0" />
</ItemGroup>

<ItemGroup>
<Folder Include="Properties" />
</ItemGroup>
</Project>
8 changes: 8 additions & 0 deletions src/ReactiveUI.Fody.Helpers/ReactiveUI.Fody.Helpers.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@
<PackageReference Include="FodyPackaging" Version="6.6.3" PrivateAssets="All" />
</ItemGroup>

<ItemGroup Condition=" $(TargetFramework.StartsWith('Xamarin.Mac')) ">
<Reference Include="Xamarin.Mac">
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Preview\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Preview\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
</Reference>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\ReactiveUI\ReactiveUI.csproj" />
Expand Down
9 changes: 9 additions & 0 deletions src/ReactiveUI.Testing/ReactiveUI.Testing.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@
</Reference>
</ItemGroup>

<ItemGroup Condition=" $(TargetFramework.StartsWith('Xamarin.Mac')) ">
<Reference Include="Xamarin.Mac">
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Preview\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Preview\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
</Reference>
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Reactive.Testing" Version="5.0.0" />
<ProjectReference Include="..\ReactiveUI\ReactiveUI.csproj" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -779,7 +779,7 @@ namespace ReactiveUI
public ReactiveUI.ReactiveCommand<System.Reactive.Unit, ReactiveUI.IRoutableViewModel?> NavigateBack { get; set; }
[System.Runtime.Serialization.IgnoreDataMember]
public System.IObservable<DynamicData.IChangeSet<ReactiveUI.IRoutableViewModel>> NavigationChanged { get; set; }
[System.Runtime.Serialization.IgnoreDataMember]
[System.Runtime.Serialization.DataMember]
public System.Collections.ObjectModel.ObservableCollection<ReactiveUI.IRoutableViewModel> NavigationStack { get; }
}
public static class RoutingStateMixins
Expand Down Expand Up @@ -1008,4 +1008,4 @@ namespace ReactiveUI
namespace System.Reactive.Disposables
{
public static class DisposableMixins { }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -786,7 +786,7 @@ namespace ReactiveUI
public ReactiveUI.ReactiveCommand<System.Reactive.Unit, ReactiveUI.IRoutableViewModel?> NavigateBack { get; set; }
[System.Runtime.Serialization.IgnoreDataMember]
public System.IObservable<DynamicData.IChangeSet<ReactiveUI.IRoutableViewModel>> NavigationChanged { get; set; }
[System.Runtime.Serialization.IgnoreDataMember]
[System.Runtime.Serialization.DataMember]
public System.Collections.ObjectModel.ObservableCollection<ReactiveUI.IRoutableViewModel> NavigationStack { get; }
}
public static class RoutingStateMixins
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@ namespace ReactiveUI.Testing
where T : System.Reactive.Concurrency.IScheduler { }
public static System.IDisposable WithScheduler(System.Reactive.Concurrency.IScheduler scheduler) { }
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -116,4 +116,4 @@ namespace System.Reactive.Concurrency
namespace System.Reactive.Linq
{
public static class ControlObservable { }
}
}
12 changes: 9 additions & 3 deletions src/ReactiveUI/ReactiveUI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
<ItemGroup Condition=" $(TargetFramework.StartsWith('MonoAndroid')) ">
<!-- Hack to get around invalid version of Java.Interop -->
<Reference Include="Java.Interop">
<!-- Path to a VS 2019 Java.Interop.dll -->
<HintPath>..\Java.Interop.dll</HintPath>
</Reference>
<!-- Path to a VS 2019 Java.Interop.dll -->
<HintPath>..\Java.Interop.dll</HintPath>
</Reference>
</ItemGroup>

<ItemGroup Condition=" $(TargetFramework.StartsWith('netstandard')) ">
Expand Down Expand Up @@ -55,6 +55,12 @@
<Compile Include="Platforms\xamarin-common\**\*.cs" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="netstandard" />
<Reference Include="Xamarin.Mac">
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
<HintPath Condition="Exists('c:\Program Files\Microsoft Visual Studio\2022\Preview\Common7\IDE\Extensions\Xamarin.VisualStudio')">c:\Program Files\Microsoft Visual Studio\2022\Preview\Common7\IDE\Extensions\Xamarin.VisualStudio\Xamarin.Mac.dll</HintPath>
</Reference>
</ItemGroup>

<ItemGroup Condition=" $(TargetFramework.StartsWith('net6.0-macos')) ">
Expand Down
2 changes: 1 addition & 1 deletion src/ReactiveUI/Routing/RoutingState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public RoutingState(IScheduler? scheduler = null)
/// Gets the current navigation stack, the last element in the
/// collection being the currently visible ViewModel.
/// </summary>
[IgnoreDataMember]
[DataMember]
public ObservableCollection<IRoutableViewModel> NavigationStack { get; }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if just changing [IgnoreDataMember] to [DataMember] fixes the issue #3322. According to L42, the NavigationStack property is only initialized inside the constructor and offers no public setter for a serializer.

NavigationStack = new ObservableCollection<IRoutableViewModel>();
Ideally worth covering this functionality with a unit test.


/// <summary>
Expand Down