Paralect.ServiceBus.ServiceBus.Send C# (CSharp) Method

Send() public method

Send message. Recipient resolved by the object type.
public Send ( ) : void
return void
        public void Send(params object[] messages)
        {
            // Skip if there is no messages
            if (messages == null || messages.Length < 1)
                return;

            // Create transport message
            ServiceBusMessage serviceBusMessage = new ServiceBusMessage(messages);
            serviceBusMessage.SentFromQueueName = _inputTransportEndpointAddress.GetFriendlyName();

            // Get list of endpoints we need send message to
            var endpoints = _endpointMapping.GetEndpoints(messages[0].GetType());

            foreach (var endpoint in endpoints)
            {
                // Create EndpointMessage from TransportMessage
                var provider = TransportRegistry.GetQueueProvider(endpoint.Address);
                TransportMessage transportMessage = provider.TranslateToTransportMessage(serviceBusMessage);

                // Send message
                var queue = provider.OpenEndpoint(endpoint.Address);
                queue.Send(transportMessage);
            }
        }

Usage Example

Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var config = new Configuration(AppDomainUnityContext.Current)
                .SetInputQueue("PSB.App2.Input")
                .SetErrorQueue("PSB.App2.Error")
                .AddEndpoint("Shared.ClientMessages", "PSB.App1.Input")
                .AddHandlers(typeof(Program).Assembly);

            var bus = new ServiceBus(config);
            bus.Run();

            Console.WriteLine("Server started. Press enter to send message");

            while (true)
            {
                Console.ReadKey();

                var message = new SayHelloToClientMessage() { Message = "Hello Client!" };
                bus.Send(message);
            }
        }