Example #1
0
        private IList <MemberBinding> GetMemberBindings(IContainerContext containerContext, IServiceRegistration serviceRegistration, ResolutionContext resolutionContext)
        {
            var length  = serviceRegistration.InjectionMembers.Length;
            var members = new List <MemberBinding>();

            for (var i = 0; i < length; i++)
            {
                var info = serviceRegistration.InjectionMembers[i];
                if (!serviceRegistration.CanInjectMember(info))
                {
                    continue;
                }

                var expression = containerContext.ResolutionStrategy
                                 .BuildResolutionExpression(containerContext, resolutionContext, info.TypeInformation, serviceRegistration.RegistrationContext.InjectionParameters);

                if (expression == null)
                {
                    continue;
                }

                members.Add(info.MemberInfo.AssignTo(expression));
            }

            return(members);
        }
Example #2
0
        private IEnumerable <Expression> FillMembersExpression(IContainerContext containerContext, IServiceRegistration serviceRegistration, ResolutionContext resolutionContext, Expression instance)
        {
            var length = serviceRegistration.InjectionMembers.Length;

            var expressions = new List <Expression>();

            for (var i = 0; i < length; i++)
            {
                var member = serviceRegistration.InjectionMembers[i];

                if (!serviceRegistration.CanInjectMember(member))
                {
                    continue;
                }

                var expression = containerContext.ResolutionStrategy
                                 .BuildResolutionExpression(containerContext, resolutionContext, member.TypeInformation, serviceRegistration.RegistrationContext.InjectionParameters);

                if (expression == null)
                {
                    continue;
                }

                expressions.Add(instance.Member(member.MemberInfo).AssignTo(expression));
            }

            return(expressions);
        }