The problem is that @inject uses the type name, and @namespace can change it. Setting an explicit order makes sure that these things happen in a sensible sequence.