feat: finalize core modules and gateway
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using TakeoutSaaS.Module.Messaging.Abstractions;
|
||||
using TakeoutSaaS.Module.Messaging.Options;
|
||||
using TakeoutSaaS.Module.Messaging.Serialization;
|
||||
using TakeoutSaaS.Module.Messaging.Services;
|
||||
|
||||
namespace TakeoutSaaS.Module.Messaging.Extensions;
|
||||
|
||||
/// <summary>
|
||||
/// 消息队列模块注册扩展。
|
||||
/// </summary>
|
||||
public static class MessagingServiceCollectionExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// 注册 RabbitMQ 发布/订阅能力。
|
||||
/// </summary>
|
||||
public static IServiceCollection AddMessagingModule(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
services.AddOptions<RabbitMqOptions>()
|
||||
.Bind(configuration.GetSection("RabbitMQ"))
|
||||
.ValidateDataAnnotations()
|
||||
.ValidateOnStart();
|
||||
|
||||
services.AddSingleton<JsonMessageSerializer>();
|
||||
services.AddSingleton<RabbitMqConnectionFactory>();
|
||||
services.AddSingleton<IMessagePublisher, RabbitMqMessagePublisher>();
|
||||
services.AddSingleton<IMessageSubscriber, RabbitMqMessageSubscriber>();
|
||||
|
||||
return services;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user