AutoCatAvalonia/AutoCat/Utils/DIExtentions.cs
2023-07-19 00:42:11 +03:00

15 lines
495 B
C#

using System;
using Avalonia.Controls;
using Microsoft.Extensions.DependencyInjection;
namespace AutoCat.Utils;
public static class DependencyInjectionExtensions
{
public static void AddWindowFactory<TWindow>(this IServiceCollection services) where TWindow: Window
{
services.AddTransient<TWindow>();
services.AddSingleton<Func<TWindow>>(x => () => x.GetService<TWindow>()!);
services.AddSingleton<IAbstractFactory<TWindow>, AbstractFactory<TWindow>>();
}
}