So you’ve decided to follow the dependency inversion principle, and have your dependencies injected (maybe by some container). Surely whether you use constructor or setter injection is a matter of personal choice, yes?
I don't think so.
Consider the restriction that a constructor argument imposes on the creation of your class – the argument is implicitly a required dependency because you can’t make your code compile if you can’t provide it (well sure, you can pass in a null value, but then you’re explicit about it). Property setters on the other hand, carry no such implications. And this is important to recognize and take advantage of, because code which carries obvious, unambiguous semantics is much, much easier to work with.
Update: To clarify, my recommendation is that you always prefer constructor injection for required dependencies, and only consider using property injection for optional dependencies.