public AssemblyLocatorResult Locate(Func <AssemblySearchPatternFactory, AssemblySearchPatternFactory> assemblyNameFilter, IDependousConfiguration dependousConfiguration) { assemblyNameFilter = assemblyNameFilter ?? new Func <AssemblySearchPatternFactory, AssemblySearchPatternFactory>((pf) => pf.Self()); var defaultFilters = assemblyNameFilter(new AssemblySearchPatternFactory()); AssemblySearchPatternFactory factory = defaultFilters; if (dependousConfiguration.ProbingPaths != null && dependousConfiguration.ProbingPaths.Any()) { List <FileInfo> results = new List <FileInfo>(); foreach (var path in dependousConfiguration.ProbingPaths) { if (path.Pattern != null) { factory = path.Pattern(new AssemblySearchPatternFactory()); } else { factory = defaultFilters; } var assemblies = new DirectoryInfo(path.Path) .EnumerateFiles() .Where(name => factory.Patterns.Any(x => x.Match(name.Name)) && this._extensions.Contains(name.Extension, StringComparer.OrdinalIgnoreCase)); results.AddRange(assemblies); } return(new AssemblyLocatorResult(results.Select(a => { var an = AssemblyName.GetAssemblyName(a.FullName); an.CodeBase = a.FullName; return an; }))); } return(new AssemblyLocatorResult(Enumerable.Empty <AssemblyName>())); }
public AssemblyLocatorResult Locate(Func <AssemblySearchPatternFactory, AssemblySearchPatternFactory> assemblyNameFilter, IDependousConfiguration dependousConfiguration) { var results = _assemblyLocators.Select(x => x.Locate(assemblyNameFilter, dependousConfiguration)); var alr = new AssemblyLocatorResult(results.SelectMany(x => x.DiscoveredAssemblyNames).Distinct(new AssemblyNameComparer())); return(alr); }
public AutoFacContainerRegistrationService(ContainerBuilder builder, IDependousConfiguration dependousConfiguration) { _dependousConfiguration = dependousConfiguration; Builder = builder; }
/// <summary> /// Initializes a new instance of the <see cref="AutoFacContainerRegistrationService"/> class. /// </summary> public AutoFacContainerRegistrationService(IDependousConfiguration dependousConfiguration) : this(new ContainerBuilder()) { _dependousConfiguration = dependousConfiguration; }
public AbstractRegistrationRule(ContainerBuilder containerBuilder, IDependousConfiguration dependousConfiguration) { Builder = containerBuilder; Configuration = dependousConfiguration; }
public GraceRegistrationRule(DependencyInjectionContainer containerBuilder, IDependousConfiguration dependousConfiguration) : base(containerBuilder, dependousConfiguration) { }
public AutoFacDecoratorRule(ContainerBuilder containerBuilder, IDependousConfiguration dependousConfiguration) : base(containerBuilder, dependousConfiguration) { }
public GraceOpenGenericRule(DependencyInjectionContainer containerBuilder, IDependousConfiguration dependousConfiguration) : base(containerBuilder, dependousConfiguration) { }
/// <summary> /// Initializes a new instance of the <see cref="GraceContainerRegistrationService"/> class. /// </summary> public GraceContainerRegistrationService(IDependousConfiguration dependousConfiguration) : this(new DependencyInjectionContainer()) { _dependousConfiguration = dependousConfiguration; }
public SelfRule(ContainerBuilder containerBuilder, IDependousConfiguration dependousConfiguration) : base(containerBuilder, dependousConfiguration) { }
public AutoFacModuleRegistrationRule(ContainerBuilder containerBuilder, IDependousConfiguration dependousConfiguration) : base(containerBuilder, dependousConfiguration) { }
/// <summary> /// Locates assemblies using the supplied search filter. /// </summary> /// <param name="assemblyNameFilter">The assembly name filter.</param> /// <returns></returns> public virtual AssemblyLocatorResult Locate(Func <AssemblySearchPatternFactory, AssemblySearchPatternFactory> assemblyNameFilter, IDependousConfiguration dependousConfiguration) { assemblyNameFilter = assemblyNameFilter ?? new Func <AssemblySearchPatternFactory, AssemblySearchPatternFactory>((pf) => pf.Self()); var filters = assemblyNameFilter(new AssemblySearchPatternFactory()); var binDir = new DirectoryInfo(this.GetBinPath()); var files = binDir.EnumerateFiles() .Where(name => filters.Patterns.Any(x => x.Match(name.Name)) && this.extensions.Contains(name.Extension, StringComparer.OrdinalIgnoreCase)); //trap any exceptions that may occur. var names = new List <AssemblyName>(); foreach (var file in files) { try { var assemblyName = AssemblyName.GetAssemblyName(file.FullName); names.Add(assemblyName); } catch (System.BadImageFormatException) { } } return(new AssemblyLocatorResult(names)); }
public AutoFacOpenGenericRule(ContainerBuilder containerBuilder, IDependousConfiguration dependousConfiguration) : base(containerBuilder, dependousConfiguration) { }