public IRegistration Process(IRegistration registration) { var allMetaRegistrations = locator.GetAllInstances <IMetaRegistration>(); var previousRegistration = registration; foreach (IMetaRegistration metaRegistration in allMetaRegistrations) { if (metaRegistration.IsValid(registration)) { metaRegistration.ChainTo(previousRegistration); previousRegistration = metaRegistration; } } return(previousRegistration); }