public Pram() { var platformAssemblyLoadPath = new Dictionary <string, string>(); var environment = new Dictionary <string, IReadOnlyDictionary <string, string> >(); var plugins = TypeConstructionUtility.ConstructTypesDerivedFrom <PramPlatformPlugin>(); foreach (var plugin in plugins) { foreach (var provider in plugin.Providers) { platformAssemblyLoadPath[provider] = plugin.PlatformAssemblyLoadPath; environment[provider] = plugin.Environment; } } PlatformAssemblyLoadPath = platformAssemblyLoadPath; Environment = environment; }
ClassicBuildPipelineCustomizer[] CreateCustomizers() => TypeConstructionUtility.ConstructTypesDerivedFrom <ClassicBuildPipelineCustomizer>().ToArray();
private BuildPipelineBase ConstructPipeline(Platform platform) { return(TypeConstructionUtility.TryConstructTypeDerivedFrom <ClassicNonIncrementalPipelineBase>(p => p.GetType() != typeof(MissingNonIncrementalPipeline) && IsBuildPipelineValid(p, platform), out var pipeline) ? pipeline : null); }