public Selector GetAll(params Type[] types) { Contract.Requires <ArgumentNullException>(types != null); Contract.Requires <InvalidOperationException>(ReflectionHelper.AreTypesDerived(types, typeof(IComponent)), "Supplied type is not a valid component."); foreach (ComponentType componentType in types.Select(ComponentTypeManager.GetType)) { ContainsTypesMap |= componentType.KeyPart; } return(this); }