| | 1 | | using Microsoft.Extensions.DependencyInjection; |
| | 2 | | using NLightning.Domain.Serialization.Interfaces; |
| | 3 | | using NLightning.Infrastructure.Serialization.Factories; |
| | 4 | | using NLightning.Infrastructure.Serialization.Interfaces; |
| | 5 | | using NLightning.Infrastructure.Serialization.Messages; |
| | 6 | | using NLightning.Infrastructure.Serialization.Node; |
| | 7 | | using NLightning.Infrastructure.Serialization.Tlv; |
| | 8 | |
|
| | 9 | | namespace NLightning.Infrastructure.Serialization; |
| | 10 | |
|
| | 11 | | /// <summary> |
| | 12 | | /// Extension methods for setting up Bitcoin infrastructure services in an IServiceCollection. |
| | 13 | | /// </summary> |
| | 14 | | public static class DependencyInjection |
| | 15 | | { |
| | 16 | | /// <summary> |
| | 17 | | /// Adds Serialization infrastructure services to the specified IServiceCollection. |
| | 18 | | /// </summary> |
| | 19 | | /// <param name="services">The IServiceCollection to add services to.</param> |
| | 20 | | /// <returns>The same service collection so that multiple calls can be chained.</returns> |
| | 21 | | public static IServiceCollection AddSerializationInfrastructureServices(this IServiceCollection services) |
| | 22 | | { |
| | 23 | | // Singleton services (one instance throughout the application) |
| 0 | 24 | | services.AddSingleton<IFeatureSetSerializer, FeatureSetSerializer>(); |
| 0 | 25 | | services.AddSingleton<IMessageSerializer, MessageSerializer>(); |
| 0 | 26 | | services.AddSingleton<IMessageTypeSerializerFactory, MessageTypeSerializerFactory>(); |
| 0 | 27 | | services.AddSingleton<IPayloadSerializerFactory, PayloadSerializerFactory>(); |
| 0 | 28 | | services.AddSingleton<ITlvSerializer, TlvSerializer>(); |
| 0 | 29 | | services.AddSingleton<ITlvStreamSerializer, TlvStreamSerializer>(); |
| 0 | 30 | | services.AddSingleton<IValueObjectSerializerFactory, ValueObjectSerializerFactory>(); |
| | 31 | |
|
| 0 | 32 | | return services; |
| | 33 | | } |
| | 34 | | } |