// TODO move to constructor injection adapter ... mward
            public override object Run()
            {
                ConstructorInfo constructor = ica.GetGreediestSatisfiableConstructor(guardedContainer);

                Type[]       parameterTypes    = TypeUtils.GetParameterTypes(constructor.GetParameters());
                IParameter[] currentParameters = ica.parameters != null
                                                     ? ica.parameters
                                                     : ica.CreateDefaultParameters(parameterTypes);
                for (int i = 0; i < currentParameters.Length; i++)
                {
                    currentParameters[i].Verify(guardedContainer, ica, parameterTypes[i]);
                }

                return(null);
            }