public override void Execute(InjectionContext <DummyClass> context) { IObjectRegistration p1; ContainerOption p2; ILifetimeScope p3; _parameterMerger.Merge(context, out p1, out p2, out p3); var dummyClass = new DummyClass(p1, p2, p3); InjectInstanceIntoContext(context, dummyClass); Parameter parameter; _f0.CreateObject(context, out parameter); dummyClass.Parameter = parameter; ContainerOption option; _f1.CreateObject(context, out option); IObjectContainer container; _f2.CreateObject(context, out container); dummyClass.SetProperties(option, container); }
public void Merge(InjectionContext context, out T0 param0) { var myParams = context.Parameters; if (myParams == null || myParams.Length == 0) { _depProvider0.CreateObject(context, out param0); return; } var paramLength = myParams.Length; if (paramLength != 1) { throw ParameterNumberExceeds(context, 1, paramLength); } switch (myParams.ParameterKind) { case ParameterKind.Positional: param0 = GetPositionalDependencyObject(_depProvider0, myParams[0], context); break; case ParameterKind.Named: param0 = GetNamedDependencyObject(_depProvider0, myParams, context); break; default: throw new ImpossibleException(); } }
protected static T GetPositionalDependencyObject <T>(DependencyProvider <T> dependencyProvider, Parameter positionalParameter, InjectionContext context) { T result; if (positionalParameter.CanSupplyValueFor(dependencyProvider)) { result = (T)positionalParameter.ParameterValue; } else { dependencyProvider.CreateObject(context, out result); } return(result); }
public override void Execute(object target, InjectionContext context) { object instance; _depProvider.CreateObject(context, out instance); try { _propertySetMethod.Invoke(target, new object[] { instance }); } catch (TargetInvocationException ex) { throw ex.InnerException; } }
protected static T GetNamedDependencyObject <T>(DependencyProvider <T> dependencyProvider, ParameterSet namedParameters, InjectionContext context) { T result; var named0 = GetNamedParameter(dependencyProvider, namedParameters); if (named0 != null) { result = (T)named0.ParameterValue; } else { dependencyProvider.CreateObject(context, out result); } return(result); }