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

            variables.MakeNamesUnique();

            return(new ListAssignmentFrame <T>(this, elements)
            {
                ReturnCreated = true
            });
        }
示例#2
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;
            });

            variables.MakeNamesUnique();
        }