public override Object Run() { ConstructorInfo constructorInfo = sica.GetConstructor(); IParameter[] matchingParameters = sica.GetMatchingParameterListForSetters(guardedContainer); try { object componentInstance = constructorInfo.Invoke(new object[] {}); // removed newInstance call for (int i = 0; i < sica.setters.Count; i++) { MethodInfo setter = (MethodInfo)sica.setters[i]; setter.Invoke(componentInstance, new Object[] { matchingParameters[i].ResolveInstance(guardedContainer, sica, sica.setterTypes[i]) }); } return(componentInstance); } catch (TargetInvocationException e) { throw new PicoInvocationTargetInitializationException(e.GetBaseException()); } catch (NullReferenceException e) { throw new PicoInvocationTargetInitializationException(e.GetBaseException()); } }
public override Object Run() { SetterInjectionComponentAdapter sica = (SetterInjectionComponentAdapter)ica; IParameter[] currentParameters = sica.GetMatchingParameterListForSetters(guardedContainer); for (int i = 0; i < currentParameters.Length; i++) { currentParameters[i].Verify(guardedContainer, sica, sica.setterTypes[i]); } return(null); }