Using with IHostBuilder
Avalanche.Service.IService can be used as .NET Generic Host dependency injection implementation.
Include following libraries:
- Microsoft.Extensions.DependencyInjection.Abstractions.dll
- Microsoft.Extensions.Hosting.dll
- Avalanche.Service.dll
- Avalanche.Service.DependencyInjection.dll
.UseServiceProviderFactory(ServiceProviderFactory.Instance) changes dependency injection implementation.
.ConfigureContainer
IHostBuilder hostBuilder =
Host.CreateDefaultBuilder()
.UseServiceProviderFactory(ServiceProviderFactory.Instance)
.ConfigureContainer<IServiceBuilder>(sb => sb.AddHandlers(ServiceHandlers.Instance))
.ConfigureServices(sc => { });
using IHost host = hostBuilder.Build();
IService service = (IService)host.Services;
Type type = service.GetRequired<TypeRequest, Type>(new TypeRequest("System.String"))!;
Console.WriteLine(type);
Microsoft dependency injection can be created with IService service.
IHostBuilder hostBuilder =
Host.CreateDefaultBuilder()
.UseServiceProviderFactory(MSServiceProviderWithAvalancheServiceFactory.Instance)
.ConfigureContainer<IServiceBuilder>(sb => sb.AddHandlers(ServiceHandlers.Instance))
.ConfigureServices(sc => { });
using IHost host = hostBuilder.Build();
IService service = host.Services.GetRequiredService<IService>();
Type type = service.GetRequired<TypeRequest, Type>(new TypeRequest("System.String"))!;
Console.WriteLine(type);
Full Example
Full example
using System;
using Avalanche.Service;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
public class hostbuilder
{
public static void Run()
{
{
// <11>
IHostBuilder hostBuilder =
Host.CreateDefaultBuilder()
.UseServiceProviderFactory(ServiceProviderFactory.Instance)
.ConfigureContainer<IServiceBuilder>(sb => sb.AddHandlers(ServiceHandlers.Instance))
.ConfigureServices(sc => { });
using IHost host = hostBuilder.Build();
IService service = (IService)host.Services;
Type type = service.GetRequired<TypeRequest, Type>(new TypeRequest("System.String"))!;
Console.WriteLine(type);
// </11>
}
{
// <12>
IHostBuilder hostBuilder =
Host.CreateDefaultBuilder()
.UseServiceProviderFactory(MSServiceProviderWithAvalancheServiceFactory.Instance)
.ConfigureContainer<IServiceBuilder>(sb => sb.AddHandlers(ServiceHandlers.Instance))
.ConfigureServices(sc => { });
using IHost host = hostBuilder.Build();
IService service = host.Services.GetRequiredService<IService>();
Type type = service.GetRequired<TypeRequest, Type>(new TypeRequest("System.String"))!;
Console.WriteLine(type);
// </12>
}
}
}