Sorry, now you have created a bigger problem. Let me show you how.
If you understood the article "Dependency Injection", you will observe the flexibility (Loosely coupled) we achieved because of that.
Now, by creating a default constructor, your code will become like this...

Now, you have 4 problems,
1. Dependent object is tightly coupled in ClassA, which will increase the maintenance cost.
2. If user triggered ClassA.ExecuteMethod() before ClassA.getDependencyObject(), gone. Your program will end up in exceptions.
3. If you have both Default and Parametrized constructor, you are not sure which one will be used by Client code.
4. Now its hard to do Unit test against ClassA, the only possible way is to use reflection and populate private fields but that is an ugly solution.

#1. Custom Controller Factory:
In this approach, we need to create a CustomControllerFactory implementing DefaultControllerFactory.
In order to do that we need to override two methods.
i. CreateController()
ii. ReleaseController()
Here is my CustomControllerFactory :

This is the best method, of you have less complex dependencies and less no of DI instances.
Because, you have to implement both the CreateController() method for all the controllers implementing DI.
Best part is less code modification & Better maintainability.

#2. Using Structure Map to resolve dependencies:
StructureMap is an open source Dependency Injection framework for the .NET platform and has been in use since 2004 .StructureMap supports both setter and constructor injection and also offers testing and diagnostic features such as logging, tracing and wiring of mock objects.
Download the dll and add it to local library folder.
Now, create a CustomControllerFactory as per StructureMap approach.
Below is my factory code :

If you are dealing with several dependencies then it is a good idea to use the Scan method of StructureMap.
The Scan method is responsible for parsing through the assembly and registering the assemblies according to the convention specified by the user. If there is no convention specified then the default convention is used. The default convention registers all the interfaces and their concrete types according to the naming convention.