Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
 /// <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;
 }