diff --git a/src/MauiMicroMvvm/Internals/DefaultNavigation.cs b/src/MauiMicroMvvm/Internals/DefaultNavigation.cs index 97faa04..c485e2c 100644 --- a/src/MauiMicroMvvm/Internals/DefaultNavigation.cs +++ b/src/MauiMicroMvvm/Internals/DefaultNavigation.cs @@ -5,22 +5,23 @@ namespace MauiMicroMvvm.Internals; [EditorBrowsable(EditorBrowsableState.Never)] public class DefaultNavigation : INavigation where TShell : Shell { - private readonly TShell _shell; + private readonly Lazy _lazyShell; + private TShell Shell => _lazyShell.Value; - public DefaultNavigation(TShell shell) + public DefaultNavigation(IServiceProvider services) { - _shell = shell; + _lazyShell = new Lazy(services.GetRequiredService); } public async Task GoToAsync(string uri) => - await _shell.GoToAsync(uri); + await Shell.GoToAsync(uri); public async Task GoToAsync(string uri, IDictionary parameters) => - await _shell.GoToAsync(uri, parameters); + await Shell.GoToAsync(uri, parameters); public async Task GoToAsync(string uri, bool animate) => - await _shell.GoToAsync(uri, animate); + await Shell.GoToAsync(uri, animate); public async Task GoToAsync(string uri, bool animate, IDictionary parameters) => - await _shell.GoToAsync(uri, animate, parameters); + await Shell.GoToAsync(uri, animate, parameters); }