<B>new ($name, B>$component_class<B>, B>$component_constructor<B>, B>$setter_parameters<B>)B>
Creates a service with a $name, and uses the $component_class and $component_constructor string arguments to initialize the service on demand.
If the $component_class and $component_constructor arguments are not defined, an <B>IOC::InsufficientArgumentsB> exception will be thrown.
Upon request of the component managed by this service, an attempt will be made to load the $component_class. If that loading fails, an <B>IOC::ClassLoadingErrorB> exception will be thrown with the details of the underlying error. If the $component_class loads successfully, then it will be inspected for an available $component_constructor method. If the $component_constructor method is not found, an <B>IOC::ConstructorNotFoundB> exception will be thrown. If the $component_constructor method is found, then it will be called.
Once a valid instance has been created, then the $setter_parameter array ref is looped through. Each parameter is then a hash ref, the key being the setter method name and the value being the name of a Service (available through get or find). It is then checked if the setter method is available, if not a <B>IOC::MethodNotFoundB> exception is thrown. It if is found, then it is called and passed the value of the resolved service name.