usingrabbitmq.client;usingRabbitMQ.Client.Events;usingSystem;usingSystem.Text;usingSystem.Threading;namespacerabbitmq{classProgram {Static voidMain (string[] args) { varType =Console.ReadLine (); if(Type = ="PRODUCER") { varFactory =NewConnectionFactory () {HostName ="localhost" }; using(varConnection =Factory. CreateConnection ())using(varChannel =connection. Createmodel ()) {channel. Exchangedeclare (Exchange:"Rabbitmq_exchange", Type:ExchangeType.Direct, Durable:true, Autodelete:false, arguments:NULL); Channel. Queuedeclare (Queue:"rabbitm Q_Q ueue", Durable:true, Exclusive:false, Autodelete:false, arguments:NULL); Channel. Queuebind (Queue:"rabbitm Q_Q ueue", Exchange:"Rabbitmq_exchange", Routingkey:"Rabbitmq_routingkey", arguments:NULL); varProperties =Channel. Createbasicproperties (); Properties. Persistent=true; for(vari =0; I < +; i++) { varMessage = $"Rabbitmq_exchange # rabbitm Q_Q ueue # rabbitmq_routingkey # {i}"; varBODY =Encoding.UTF8.GetBytes (message); Channel. Basicpublish (Exchange:"Rabbitmq_exchange", Routingkey:"Rabbitmq_routingkey", Basicproperties:properties, body:body); Console.WriteLine ("[x] Sent {0}", message); } console.readline (); } } if(Type = ="CONSUMER") { varFactory =NewConnectionFactory () {HostName ="localhost" }; using(varConnection =Factory. CreateConnection ())using(varChannel =connection. Createmodel ()) {channel. Exchangedeclare (Exchange:"Rabbitmq_exchange", Type:ExchangeType.Direct, Durable:true, Autodelete:false, arguments:NULL); Channel. Queuedeclare (Queue:"rabbitm Q_Q ueue", Durable:true, Exclusive:false, Autodelete:false, arguments:NULL); Channel. Queuebind (Queue:"rabbitm Q_Q ueue", Exchange:"Rabbitmq_exchange", Routingkey:"Rabbitmq_routingkey", arguments:NULL); Channel. Basicqos (prefetchsize:0, Prefetchcount:1,Global:false); varConsumer =NewEventingbasicconsumer (channel); Consumer. Received+ = (model, ea) = = { varBODY =ea. Body; varMessage =Encoding.UTF8.GetString (body); Console.WriteLine ("[x] Received {0}", message); Thread.Sleep ( -); Console.WriteLine ("[x] done"); Channel. Basicack (Deliverytag:ea. Deliverytag, multiple:false); }; Channel. Basicconsume (Queue:"rabbitm Q_Q ueue", Autoack:false, Consumer:consumer); Console.ReadLine (); } } } }}
C # Operations RABBITMQ Example