public void SetOutgoing(Func<TransportMessage, Task> outgoing) { this.outgoing = msg => { outgoingTransport.Add(msg); return outgoing(msg); }; }
Broker Register(MessageUnit unit, Address address) { if (!units.ContainsKey(address)) { units.Add(address, new List<MessageUnit>()); unit.SetOutgoing(Outgoing); units[address].Add(unit); } return this; }