예제 #1
0
            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());
                }
            }
예제 #2
0
            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);
            }