diff --git a/source/VMelnalksnis.NordigenDotNet.DependencyInjection/ServiceCollectionExtensions.cs b/source/VMelnalksnis.NordigenDotNet.DependencyInjection/ServiceCollectionExtensions.cs
index 2f674d7..ef013ab 100644
--- a/source/VMelnalksnis.NordigenDotNet.DependencyInjection/ServiceCollectionExtensions.cs
+++ b/source/VMelnalksnis.NordigenDotNet.DependencyInjection/ServiceCollectionExtensions.cs
@@ -4,7 +4,9 @@
using System;
using System.Diagnostics.CodeAnalysis;
+using System.Linq;
using System.Net.Http;
+using System.Net.Http.Headers;
using JetBrains.Annotations;
@@ -27,6 +29,15 @@ namespace VMelnalksnis.NordigenDotNet.DependencyInjection;
[PublicAPI]
public static class ServiceCollectionExtensions
{
+ private static readonly ProductInfoHeaderValue _userAgent;
+
+ static ServiceCollectionExtensions()
+ {
+ var assemblyName = typeof(INordigenClient).Assembly.GetName();
+ var assemblyShortName = assemblyName.Name ?? assemblyName.FullName.Split(',').First();
+ _userAgent = new(assemblyShortName, assemblyName.Version?.ToString());
+ }
+
/// Adds all required services for .
/// The service collection in which to register the services.
/// The configuration to which to bind options models.
@@ -75,15 +86,6 @@ public static class ServiceCollectionExtensions
private static void ConfigureNordigenClient(IServiceProvider provider, HttpClient client)
{
client.BaseAddress = provider.GetRequiredService>().CurrentValue.BaseAddress;
-
- var assembly = typeof(INordigenClient).Assembly.GetName();
-
- var assemblyName = assembly.Name ??
- throw new InvalidOperationException($"Assembly {assembly.FullName} name is not specified");
-
- var assemblyVersion = assembly.Version ??
- throw new InvalidOperationException($"Assembly {assembly.FullName} version is not specified");
-
- client.DefaultRequestHeaders.UserAgent.Add(new(assemblyName, assemblyVersion.ToString()));
+ client.DefaultRequestHeaders.UserAgent.Add(_userAgent);
}
}