Hello,
I am trying to add the navigation to a new project using Avalonia UI. (I also need log and other things, DI)
I noticed the preprepared calls for
AddViewsAndViewModels and AddMappedViewsAndViewModels and it looks, they are somehow generated.
Among the others, I am referencing NuGet package Mvvm.Navigation.Avalonia" Version="1.4.5", CommunityToolkit.Mvvm" Version="8.2.2"
What are the rules (conventions) for triggering that code generation of that ServiceCollectionExtensions?
If it somehow helps ,In more detail - my "testing" code App.axaml.cs is as following:
private IHost Host { get; } = Microsoft.Extensions.Hosting.Host .CreateApplicationBuilder() .AddMvvmNavigation() .Build();
//public App() //{ // var builder = Microsoft.Extensions.Hosting.Host.CreateApplicationBuilder(); // Services = builder.Services; // Host = builder.AddMvvmNavigation().Build(); //}
`
public readonly ServiceCollection Services = new ServiceCollection();
public ServiceProvider ServiceProvider { get; set; }
public override void Initialize()
{
Services.AddLogging(loggingBuilder =>
{
// configure Logging with NLog
loggingBuilder.ClearProviders();
loggingBuilder.SetMinimumLevel(LogLevel.Trace);
loggingBuilder.AddNLog();
});
Services.AddSingleton<ViewLocator>(ViewLocator.Instance);
Services.AddSingleton<IPlatformService, DesktopPlatformService>();
Services.AddSingleton<IMessageService, NotificationMessageService>();
#if DEBUG
Ioc.Default.ConfigureServices(Host.Services);
#endif
AvaloniaXamlLoader.Load(this);
`
(please excuse me for wrongly formated above code)
(unfortunatelly have to continue with registration in OnAttachedToVisualTree of the MainView, because one ctor parameter of the
MainViewModel needs notification service initialized with following parameter)
var notificationManager = new WindowNotificationManager(TopLevel.GetTopLevel(this));