protected virtual object LocateFromChildContainer(IInjectionContextValueProvider valueProvider, IExportLocatorScope scope, StaticInjectionContext staticContext, Type type, object key, IInjectionContext context, object defaultValue, bool useDefault, bool isRequired) { var value = valueProvider.GetValueFromInjectionContext(scope, type, key, context, false); if (value != null) { return(value); } if (scope.TryLocate(type, out value, context, withKey: key)) { return(value); } if (useDefault) { return(defaultValue); } if (isRequired) { throw new LocateException(staticContext); } return(null); }
/// <summary> /// Default constructor /// </summary> /// <param name="arrayExpressionCreator"></param> /// <param name="enumerableExpressionCreator"></param> /// <param name="wrapperExpressionCreator"></param> /// <param name="contextValueProvider"></param> public ActivationExpressionBuilder(IArrayExpressionCreator arrayExpressionCreator, IEnumerableExpressionCreator enumerableExpressionCreator, IWrapperExpressionCreator wrapperExpressionCreator, IInjectionContextValueProvider contextValueProvider) { EnumerableExpressionCreator = enumerableExpressionCreator; ArrayExpressionCreator = arrayExpressionCreator; WrapperExpressionCreator = wrapperExpressionCreator; _contextValueProvider = contextValueProvider; }