AgentMulder.Containers.CastleWindsor.Patterns.WindsorContainerRegisterPattern.GetComponentRegistrations C# (CSharp) Method

GetComponentRegistrations() public method

public GetComponentRegistrations ( ITreeNode registrationRootElement ) : IEnumerable
registrationRootElement ITreeNode
return IEnumerable
        public override IEnumerable<IComponentRegistration> GetComponentRegistrations(ITreeNode registrationRootElement)
        {
            IStructuralMatchResult match = Match(registrationRootElement);

            if (match.Matched)
            {
                IEnumerable<IInvocationExpression> invocationExpressions =
                    match.GetMatchedElementList("arguments").Cast<ICSharpArgument>()
                        .Select(argument => argument.Value)
                        .OfType<IInvocationExpression>().ToList();

                return from argumentPattern in argumentsPatterns
                       from expression in invocationExpressions
                       from registration in argumentPattern.GetComponentRegistrations(expression)
                       select registration;
            }

            return Enumerable.Empty<IComponentRegistration>();
        }