Esempio n. 1
0
        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;
 }
Esempio n. 5
0
 public AbstractRegistrationRule(ContainerBuilder containerBuilder, IDependousConfiguration dependousConfiguration)
 {
     Builder       = containerBuilder;
     Configuration = dependousConfiguration;
 }
Esempio n. 6
0
 public GraceRegistrationRule(DependencyInjectionContainer containerBuilder, IDependousConfiguration dependousConfiguration) : base(containerBuilder, dependousConfiguration)
 {
 }
Esempio n. 7
0
 public AutoFacDecoratorRule(ContainerBuilder containerBuilder, IDependousConfiguration dependousConfiguration) : base(containerBuilder, dependousConfiguration)
 {
 }
Esempio n. 8
0
 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;
 }
Esempio n. 10
0
 public SelfRule(ContainerBuilder containerBuilder, IDependousConfiguration dependousConfiguration) : base(containerBuilder, dependousConfiguration)
 {
 }
Esempio n. 11
0
 public AutoFacModuleRegistrationRule(ContainerBuilder containerBuilder, IDependousConfiguration dependousConfiguration) : base(containerBuilder, dependousConfiguration)
 {
 }
Esempio n. 12
0
        /// <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));
        }
Esempio n. 13
0
 public AutoFacOpenGenericRule(ContainerBuilder containerBuilder, IDependousConfiguration dependousConfiguration) : base(containerBuilder, dependousConfiguration)
 {
 }