Goldie.MauiPlugins.PageResolver
2.0.1
dotnet add package Goldie.MauiPlugins.PageResolver --version 2.0.1
NuGet\Install-Package Goldie.MauiPlugins.PageResolver -Version 2.0.1
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.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Goldie.MauiPlugins.PageResolver --version 2.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Goldie.MauiPlugins.PageResolver, 2.0.1"
#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.
// Install Goldie.MauiPlugins.PageResolver as a Cake Addin
#addin nuget:?package=Goldie.MauiPlugins.PageResolver&version=2.0.1
// Install Goldie.MauiPlugins.PageResolver as a Cake Tool
#tool nuget:?package=Goldie.MauiPlugins.PageResolver&version=2.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
.NET 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 | Versions 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.0.1 | 1,659 | 11/18/2023 |
2.0.0 | 139 | 11/13/2023 |
2.0.0-preview1 | 72 | 10/13/2023 |
1.1.1 | 3,350 | 1/14/2023 |
1.1.0 | 249 | 1/14/2023 |
1.0.7 | 937 | 8/13/2022 |
1.0.6 | 448 | 6/26/2022 |
1.0.5 | 333 | 3/8/2022 |
1.0.5-preview1 | 109 | 3/5/2022 |
1.0.4 | 130 | 2/26/2022 |
1.0.3 | 110 | 2/26/2022 |
1.0.2 | 138 | 2/14/2022 |
1.0.1 | 234 | 10/23/2021 |
1.0.0 | 225 | 6/17/2021 |
1.0.0-build | 125 | 8/13/2022 |