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>();
}