private static IEnumerable <TypeScanResult> RegisterComponents( this IEnumerable <TypeScanResult> enumerable, Type component, ContainerRegisterCallback callback) { Guard.NotNull(enumerable, nameof(enumerable)); Guard.NotNull(component, nameof(component)); Guard.NotNull(callback, nameof(callback)); foreach (var typeScanResult in enumerable) { var type = typeScanResult.Type; var service = type.GetInterfaces().FirstOrDefault(t => t.GetTypeDefinition() == component); if (service != null) { callback(service, type); } else { yield return(typeScanResult); } } }
private static IEnumerable <TypeScanResult> RegisterComponents <TComponent>( this IEnumerable <TypeScanResult> enumerable, ContainerRegisterCallback callback) { return(enumerable.RegisterComponents(typeof(TComponent), callback)); }