diff options
Diffstat (limited to 'Impostor-dev/src/Impostor.Hazel/Extensions/ServiceProviderExtensions.cs')
-rw-r--r-- | Impostor-dev/src/Impostor.Hazel/Extensions/ServiceProviderExtensions.cs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Impostor-dev/src/Impostor.Hazel/Extensions/ServiceProviderExtensions.cs b/Impostor-dev/src/Impostor.Hazel/Extensions/ServiceProviderExtensions.cs new file mode 100644 index 0000000..56c7380 --- /dev/null +++ b/Impostor-dev/src/Impostor.Hazel/Extensions/ServiceProviderExtensions.cs @@ -0,0 +1,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); + }); + } + } +} |