This post is a sort of "errata corrige", a few things need clarification:
- at minute 18: I said that "we can rely on DI in a INeedInitialization" implementation: wrong, we cannot. At this stage we cannot resolve any components yet, what we are guaranteed is that the container is setup and injected in NServiceBus so we can register components not yet resolve them;
- At min 35: there is a self-hosting sample, since now the IBus interface implements the Idisposable interface it is much better to change the sample code using the "using" pattern, in order to correctly shutdown the bus:
using( var bus = Bus.Create( cfg ) )
- the AsAClient role is for SendOnly endpoints: wrong, the difference between AsAClient and AsAServer roles is the client one turns off transactions, SLR, Timeouts and purges queue at startup.
- At min 45.40: talking about registering steps in the pipeline, I said the InsertAfter/Before is right after/before: it is not accurate, the registration just guarantees that the step is inserted after or before another step, it does not guarantee that it will be inserted right after or before, so there could be steps between the new registered step and the one that was configured to be after or before.