Example #1
0
        public override Frame CreateBuildFrame()
        {
            var variables = new ResolverVariables();
            var elements  = _elements.Select(x => variables.Resolve(x, BuildMode.Dependency)).ToArray();

            return(new ArrayAssignmentFrame <T>(this, elements)
            {
                ReturnCreated = true
            });
        }
Example #2
0
        protected override Variable generateVariableForBuilding(ResolverVariables variables, BuildMode mode, bool isRoot)
        {
            // This is goofy, but if the current service is the top level root of the resolver
            // being created here, make the dependencies all be Dependency mode
            var dependencyMode = isRoot && mode == BuildMode.Build ? BuildMode.Dependency : mode;

            var elements = Elements.Select(x => variables.Resolve(x, dependencyMode)).ToArray();

            return(new ListAssignmentFrame <T>(this, elements).Variable);
        }
Example #3
0
        public Variable Resolve(ResolverVariables variables, BuildMode mode)
        {
            var variable = variables.Resolve(Instance, mode);

            if (Parameter.Name.EqualsIgnoreCase(variable.Usage))
            {
                variable.OverrideName("inline_" + variable.Usage);
            }

            return(variable);
        }
Example #4
0
        public Variable Resolve(ResolverVariables variables, BuildMode mode)
        {
            if (Instance.IsInlineDependency())
            {
                return(Instance.CreateInlineVariable(variables));
            }

            var inner = variables.Resolve(Instance, mode);

            return(Parameter.IsOptional
                ? new OptionalArgumentVariable(inner, Parameter)
                : inner);
        }
Example #5
0
        private void useInlineConstruction()
        {
            var variables = new ResolverVariables(_fields);

            foreach (var standin in _standins)
            {
                var variable = variables.Resolve(standin.Instance, BuildMode.Inline);
                standin.UseInner(variable);
            }

            variables.OfType <InjectedServiceField>().Each(field =>
            {
                var family      = _services.FindAll(field.VariableType);
                field.IsOnlyOne = family.Length == 1;
            });
        }
Example #6
0
        public SetterArg Resolve(ResolverVariables variables, BuildMode mode)
        {
            Variable variable;

            if (Instance.IsInlineDependency())
            {
                variable = Instance.CreateInlineVariable(variables);

                // HOKEY. Might need some smarter way of doing this. Helps to disambiguate
                // between ctor args of nested decorators
                if (!(variable is Setter))
                {
                    variable.OverrideName(variable.Usage + "_inline_" + ++variables.VariableSequence);
                }
            }
            else
            {
                variable = variables.Resolve(Instance, mode);
            }

            return(new SetterArg(Property, variable));
        }
Example #7
0
        public Variable Resolve(ResolverVariables variables, BuildMode mode)
        {
            if (Instance.IsInlineDependency())
            {
                var variable = Instance.CreateInlineVariable(variables);


                // HOKEY. Might need some smarter way of doing this. Helps to disambiguate
                // between ctor args of nested decorators
                if (!(variable is Setter))
                {
                    variable.OverrideName(variable.Usage + "_inline_" + ++variables.VariableSequence);
                }


                return(variable);
            }

            var inner = variables.Resolve(Instance, mode);

            return(Parameter.IsOptional
                ? new OptionalArgumentVariable(inner, Parameter)
                : inner);
        }
        public override Variable CreateVariable(BuildMode mode, ResolverVariables variables, bool isRoot)
        {
            var settings = variables.Resolve(_settings, mode);

            return(new SqlConnectionFrame(settings, this).Connection);
        }
Example #9
0
        public override Variable CreateVariable(BuildMode mode, ResolverVariables variables, bool isRoot)
        {
            var root = variables.Resolve(_rootInstance, mode);

            return(new NewContextFrame(this, root).Variable);
        }
Example #10
0
 public Variable Resolve(ResolverVariables variables, BuildMode mode)
 {
     return(variables.Resolve(Instance, mode));
 }
Example #11
0
        public override Variable CreateVariable(BuildMode mode, ResolverVariables variables, bool isRoot)
        {
            var root = variables.Resolve(_root, mode);

            return(new MessagingRootFrame(this, root).Service);
        }