configuring-avalonia-dependency-injection
π―Skillfrom christian289/dotnet-with-claudecode
Configures dependency injection and GenericHost setup for AvaloniaUI applications, enabling service registration and IoC patterns.
Installation
npx skills add https://github.com/christian289/dotnet-with-claudecode --skill configuring-avalonia-dependency-injectionSkill Details
"Configures GenericHost and Dependency Injection in AvaloniaUI applications. Use when setting up DI container, registering services, or implementing IoC patterns in AvaloniaUI projects."
Overview
# 6.6 Dependency Injection and GenericHost Usage
Apply the same GenericHost pattern in AvaloniaUI as in WPF
Project Structure
The templates folder contains a .NET 9 AvaloniaUI project example.
```
templates/
βββ AvaloniaDISample.App/ β Avalonia Application Project
β βββ Views/
β β βββ MainWindow.axaml
β β βββ MainWindow.axaml.cs
β βββ App.axaml
β βββ App.axaml.cs
β βββ Program.cs
β βββ GlobalUsings.cs
β βββ AvaloniaDISample.App.csproj
βββ AvaloniaDISample.ViewModels/ β ViewModel Class Library (UI framework independent)
βββ MainViewModel.cs
βββ GlobalUsings.cs
βββ AvaloniaDISample.ViewModels.csproj
```
App.axaml.cs Example:
```csharp
// App.axaml.cs
namespace MyApp;
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
public partial class App : Application
{
private IHost? _host;
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
// Create GenericHost and register services
_host = Host.CreateDefaultBuilder()
.ConfigureServices((context, services) =>
{
// Register services
services.AddSingleton
services.AddSingleton
services.AddTransient
// Register ViewModels
services.AddTransient
// Register Views
services.AddSingleton
})
.Build();
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
desktop.MainWindow = _host.Services.GetRequiredService
}
base.OnFrameworkInitializationCompleted();
}
}
```
More from this repository7
.NET development plugins for Claude Code - WPF, AvaloniaUI, and more
Enhances WPF development by providing a comprehensive Claude Code extension with 57 skills, 11 specialized agents, and 5 commands for MVVM patterns, custom control design, and performance optimizat...
converting-html-css-to-wpf-xaml skill from christian289/dotnet-with-claudecode
Resolves AvaloniaUI RadialGradientBrush compatibility by ensuring GradientOrigin and Center values are identical during WPF to AvaloniaUI conversion.
Guides developers in designing robust, modular, and reusable custom control architectures for AvaloniaUI applications with best practices and architectural patterns.
Enables advanced collection management in AvaloniaUI by providing filtering, sorting, and grouping capabilities using DataGridCollectionView and ReactiveUI.
Structures AvaloniaUI solutions with clear project naming conventions, layer separation, and dependency management for scalable .NET applications.