2017-07-03 1 views

Antwort

1

Ab den docsReceived ist ein Ereignis in der EventingBasicConsumer -Klasse. Das bedeutet, dass Sie durch Hinzufügen eines Ereignis-Handler für das Ereignis registrieren zu.

consumer.Recieved += (model, args) => { /* 
    do whatever you want when the event is triggered 
*/}; 

Dies ist ein Teil des Codes (genauer ein Delegierter), die ausgeführt wird, wenn das Ereignis eintritt. In Ihrem speziellen Fall, dass Sie einige Argumente aus der Veranstaltung an diesem Ereignisse angemessen bekommen auch reagieren. der das erste ist vom Typ IBasicConsumer und das zweite vom Typ BasicDeliverEventArgs. Somit ist das Folgende identisch mit dem Code, den ich oben geschrieben habe:

Während Sie oft das erste weglassen können, da es nicht benötigt wird, enthält das zweite Informationen, die der Aufrufer des Ereignisses (das Rabbit-Framework in Ihrem Fall) auf diesen Delegaten angewendet hat. So können Sie es verwenden und zum Beispiel in einem MessageBox anzeigen.

var body = args.Body; 

Alternativly ein anonymes Verfahren zur Verwendung (eines Verfahrens ohne Namen, wie oben dargestellt) Sie können sicher ein eine mit dem Namen verwenden:

consumer.Recieved += MyHandler; 

private void MyHandler(IBasicConsumer model, BasicDeliverEventArgs args) 
{ 
    // your stuff here 
} 

tun hat so den Vorteil, dass Sie leicht den Handler entfernen .

consumer.Recieved -= MyHandler; 
0

So kocht Ihre Frage zu dem, was unten ist consumer.Received += (model, ea) => {stuff} tun? Es ist eine Lambda-Funktion ..

Nun das Erhalten ist ein Ereignis, das eindeutig 2 Eigenschaften hat, für die der Coder sie Modell und EA benannt hat. Die sie verwenden sie in {Sachen}

Bisher konnten Sie/geschrieben hätte (und ich bin hier Variablentypen bilden aber)

consume.Received += mycall; 

void mycall(String model, Mything ea) 
{ 
    stuff; 
} 

Es gibt jedoch Nachteile des Lamda, während Sie sie auf hinzufügen die Fliege, es ist nicht so einfach zu entfernen .. wo als der ältere Stil Sie konsumieren können.Received - = Mycall;

+0

Es heißt Lambda –

+0

Also lesen Sie meine BIO es erklärt Legastheniker .. – BugFinder

+0

Sorry, ich will dich nicht beleidigen. Aber es ist ein sehr häufiger Fehler und ich wollte es Ihnen zeigen –