AgentMulder.Containers.CastleWindsor.Patterns.FromTypes.BasedOn.BasedOnNonGeneric.GetBasedOnRegistrations C# (CSharp) Method

GetBasedOnRegistrations() public method

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

            if (match.Matched)
            {
                var argument = match.GetMatchedElement("argument") as ICSharpArgument;
                if (argument == null)
                {
                    yield break;
                }

                var typeofExpression = argument.Value as ITypeofExpression;
                if (typeofExpression != null)
                {
                    var declaredType = typeofExpression.ArgumentType as IDeclaredType;
                    if (declaredType != null)
                    {
                        ITypeElement typeElement = declaredType.GetTypeElement();
                        if (typeElement != null)
                        {
                            yield return registrationCreator.Create(registrationRootElement, typeElement);
                        }
                    }
                }
            }
        }