Код: Выделить всё
_services.TryAddSingleton(implementationFactory =>
{
var serviceBusConfiguration = implementationFactory.GetRequiredService().Value;
var serviceBusClient = new ServiceBusClient(serviceBusConfiguration.ServiceBusConnectionString, new ServiceBusClientOptions
{
TransportType = ServiceBusTransportType.AmqpWebSockets
});
return serviceBusClient.CreateReceiver(serviceBusConfiguration.ServiceBusQueueName, new ServiceBusReceiverOptions
{
ReceiveMode = ServiceBusReceiveMode.PeekLock
});
});
< /code>
Для использования я должен создать экземпляр ServiceBussender. private readonly ServiceBusSender _serviceBusSender;
public CarReservationMessagingService(ServiceBusSender serviceBusSender)
{
_serviceBusSender = serviceBusSender ?? throw new ArgumentNullException(nameof(serviceBusSender));
}
public async Task PublishNewCarReservationMessageAsync(CarReservation carReservation)
{
var carReservationIntegrationMessage = new CarReservationIntegrationMessage
{
Id = Guid.NewGuid().ToString(),
CarId = carReservation.CarId,
CustomerId = carReservation.CustomerId,
RentFrom = carReservation.RentFrom,
RentTo = carReservation.RentTo
};
var serializedMessage = JsonSerializer.Serialize(carReservationIntegrationMessage);
ServiceBusMessage message = new ServiceBusMessage(serializedMessage);
await _serviceBusSender.SendMessageAsync(message);
}
Подробнее здесь: https://stackoverflow.com/questions/679 ... p-net-core