private IEnumerable <IPartRegistry <IContractService> > GetPublicPartRegistryInstances() { var registryInstancesLocatedInDomain = this.assemblies .SelectMany(x => PartRegistryTypeFilter.Filter(x.GetTypes())) .Select(CreatePartRegistryInstance); return(registryInstancesLocatedInDomain); }
private static IEnumerable <IPartRegistry <IContractService> > GetPublicPartRegistryInstancesInAppDomain(AppDomain domain) { var registryInstancesLocatedInDomain = domain .GetAssemblies() .SelectMany(x => PartRegistryTypeFilter.Filter(x.GetTypes())) .Select(CreatePartRegistryInstance); return(registryInstancesLocatedInDomain); }
/// <summary> /// Locates <see cref="IPartRegistry{TContractService}"/> instances in the available <see cref="IPartRegistry{TContractService}"/> collection. /// </summary> /// <returns>An <see cref="IEnumerable{T}"/> of <see cref="IPartRegistry{TContractService}"/> instances.</returns> public IEnumerable <IPartRegistry <IContractService> > GetRegistries() { var reachableTypes = this.registries .Where(TypeScannerIsNotNull) .SelectMany(GetTypesFromTypeScanner) // This should filter on actual type. Need to fix test .ToList(); var typesThatMatchCritierias = PartRegistryTypeFilter.Filter(reachableTypes) .Where(RegistryIsNotKnown) .ToList(); if (typesThatMatchCritierias.Count() > 0) { this.registries = this.CreateInstancesAndRetrieveSateliteRegistries(typesThatMatchCritierias); } return(this.registries); }