In your example what you are actually passing are dependencies, but moreover data needed by the class to operate.
In your case it sounds like the methods RenameFiles()
and CopyFiles()
operate on the parameters that are passed to them. Given their names I would think that the methods on a single instance of ImageFileGenerator
can be called with different parameters. If that is true arguably the parameters should be on the method calls themselves not the constructor.
If, on the other hand, on one instance RenameFiles()
and CopyFiles()
are each only called once with the same parameters the parameters would be good candidates for the constructor.
I personally would try to avoid property injection for required dependencies - in that case constructor injection is much more appropriate.