Goldie.MauiPlugins.PageResolver 2.5.4

dotnet add package Goldie.MauiPlugins.PageResolver --version 2.5.4
                    
NuGet\Install-Package Goldie.MauiPlugins.PageResolver -Version 2.5.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Goldie.MauiPlugins.PageResolver" Version="2.5.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Goldie.MauiPlugins.PageResolver" Version="2.5.4" />
                    
Directory.Packages.props
<PackageReference Include="Goldie.MauiPlugins.PageResolver" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Goldie.MauiPlugins.PageResolver --version 2.5.4
                    
#r "nuget: Goldie.MauiPlugins.PageResolver, 2.5.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Goldie.MauiPlugins.PageResolver@2.5.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Goldie.MauiPlugins.PageResolver&version=2.5.4
                    
Install as a Cake Addin
#tool nuget:?package=Goldie.MauiPlugins.PageResolver&version=2.5.4
                    
Install as a Cake Tool

NuGet Status Nuget

Watch the video:

<a href="http://www.youtube.com/watch?feature=player_embedded&v=qx8A4zIe9dU" target="_blank"> <img src="http://img.youtube.com/vi/qx8A4zIe9dU/hqdefault.jpg" alt="Watch the video" /> </a>

MAUI PageResolver

A simple and lightweight page resolver for use in .NET MAUI projects.

If you want a simple page resolver with DI without using a full MVVM framework (or if you want to use MVU), this package will let you navigate to fully resolved pages, with view models and dependencies, by calling:

await Navigation.PushAsync<MyPage>();

Advanced features

Additional features supported by PageReolver:

  • Paramaterised navigation - pass page parameters
await Navigation.PushAsync<MyPage>(myPageParam1, "bob", 4);
  • Paramaterised navigation - pass ViewModel parameters (.NET 8 version only)
await Navigation.PushAsync<MyPage>(myViewModelParam1, "bob", 4);
  • Source generator - automatically register dependencies in IServiceCollection with generated code (.NET 8 version only)
using Maui.Plugins.PageResolver;
using DemoProject;
using DemoProject.Pages;
using DemoProject.ViewModels;
using DemoProject.Services;
// ---------------
// <auto-generated>
//   Generated by the MauiPageResolver Auto-registration module.
//   https://github.com/matt-goldman/Maui.Plugins.PageResolver
// </auto-generated>
// ---------------

namespace DemoProject;

public static class PageResolverExtensions
{

    public static MauiAppBuilder UseAutodependencies(this MauiAppBuilder builder)
    {
         var ViewModelMappings = new Dictionary<Type, Type>();

         // pages
         builder.Services.AddTransient<MainPage>();


         // ViewModels
         builder.Services.AddTransient<MainViewModel>();


         // Services
         builder.Services.AddSingleton<IDefaultScopedService, DefaultScopedService>();
         builder.Services.AddTransient<ICustomScopedService, CustomScopedService>();


         // ViewModel to Page mappings
         ViewModelMappings.Add(typeof(MainPage), typeof(MainViewModel));


         // Initialisation
         builder.Services.UsePageResolver(ViewModelMappings);
         return builder;
    }
}
  • Lifetime attributes - override convention-based service lifetimes (singleton for services, transient for pages and ViewModels) in the source generator (.NET 8 version only)
[Transient]
public class CustomScopedService : ICustomScopedService
{
[...]

Getting Started

Check out the full instructions in the wiki on using PageResolver

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Goldie.MauiPlugins.PageResolver:

Package Downloads
Goldie.MauiPlugins.PageResolver.MopupsExtensions

Mopups extensions for PageResolver - push popup pages with resolved dependencies

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Goldie.MauiPlugins.PageResolver:

Repository Stars
matt-goldman/MauiCleanTodos
Clean Architecture with ASP.NET Core, .NET MAUI and Blazor
Version Downloads Last Updated
2.5.4 1,643 2/4/2025
2.5.3 270 12/27/2024
2.5.2 1,584 11/4/2024
2.5.1 811 11/2/2024
2.5.0 341 10/18/2024
2.0.1 4,428 11/18/2023
2.0.0 188 11/13/2023
2.0.0-preview1 117 10/13/2023
1.1.1 4,946 1/14/2023
1.1.0 333 1/14/2023
1.0.7 1,091 8/13/2022
1.0.6 538 6/26/2022
1.0.5 417 3/8/2022
1.0.5-preview1 184 3/5/2022
1.0.4 216 2/26/2022
1.0.3 191 2/26/2022
1.0.2 218 2/14/2022
1.0.1 322 10/23/2021
1.0.0 331 6/17/2021
1.0.0-build 199 8/13/2022