Files
WpfExtended/WpfExtended.Test/TestApplication/Launcher.cs
T
amacocian 544ec77667 Integrate with Microsoft.Extensions.DependencyInjection (#12)
* Integrate with Microsoft.Extensions.DependencyInjection

* Setup CODEOWNERS
2022-09-09 20:13:59 +02:00

66 lines
2.0 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Http.Logging;
using Microsoft.Extensions.Logging;
using Slim;
using Slim.Integration.ServiceCollection;
using System;
using System.Extensions;
using System.Http;
using System.Logging;
using System.Net.Http;
using System.Windows.Extensions;
using WpfExtended.Test;
using WpfExtended.Tests.Services;
namespace WpfExtended.Tests
{
public class Launcher : ExtendedApplication<MainWindow>
{
private static Launcher Instance { get; } = new Launcher();
[STAThread]
public static void Main()
{
Instance.Run();
}
protected override System.IServiceProvider SetupServiceProvider(IServiceCollection services)
{
var serviceManager = new ServiceManager();
serviceManager.RegisterResolver(new LoggerResolver());
serviceManager.RegisterDebugLoggerFactory();
serviceManager.RegisterResolver(
new HttpClientResolver()
.WithHttpMessageHandlerFactory((serviceProvider, categoryType) =>
{
var loggerType = typeof(ILogger<>).MakeGenericType(categoryType);
var logger = serviceProvider.GetService(loggerType).As<ILogger>();
var handler = new LoggingHttpMessageHandler(logger) { InnerHandler = new HttpClientHandler() };
return handler;
}));
serviceManager.RegisterOptionsManager();
var provider = services.BuildSlimServiceProvider(serviceManager);
return provider;
}
protected override void ApplicationClosing()
{
}
protected override void ApplicationStarting()
{
}
protected override bool HandleException(Exception e)
{
return false;
}
protected override void RegisterServices(IServiceCollection services)
{
services.AddSingleton<IDummyService, DummyService>();
}
}
}