blob: 56c738071f3b634040c07890dd059db8196f4d12 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.ObjectPool;
namespace Impostor.Hazel.Extensions
{
public static class ServiceProviderExtensions
{
public static void AddHazel(this IServiceCollection services)
{
services.TryAddSingleton<ObjectPoolProvider>(new DefaultObjectPoolProvider());
services.AddSingleton(serviceProvider =>
{
var provider = serviceProvider.GetRequiredService<ObjectPoolProvider>();
var policy = ActivatorUtilities.CreateInstance<MessageReaderPolicy>(serviceProvider);
return provider.Create(policy);
});
}
}
}
|