public void Failed(Exception e)
{
// we need to take a copy of delivery listeners here because the
// fault strategy that is invoked will accept/reject the message, which
// will cause an exception because we're iterating this collection
var listeners = deliveryListeners.ToArray();
foreach (var listener in listeners)
{
listener.OnFailed(this, e);
}
// this list should already be cleared by this point
deliveryListeners.Clear();
}
}