예제 #1
0
        public AutoRegisterModule(AutoRegisterOptionsBuilder optionsBuilder)
        {
            _optionsBuilder = optionsBuilder;

            _optionsBuilder.Feature <ConfigValueFeature>();
            _optionsBuilder.Feature <InjectionFeature>();

            _optionsBuilder.Feature <LifecycleFeature>();

            //_optionsBuilder.Feature<ConfigValueFieldAutoRegisterFeature>();
            //_optionsBuilder.Feature<InjectionFieldAutoRegisterFeature>();
            //_optionsBuilder.Feature<ConfigValueCtorParamAutoRegisterFeature>();
            //_optionsBuilder.Feature<InjectionCtorParamAutoRegisterFeature>();
            //_optionsBuilder.Feature<LifecycleAutoRegisterFeature>();
            _optionsBuilder.Feature <AttachLifetimeScopeAutoRegisterFeature>();
        }
예제 #2
0
        public static AutoRegisterOptionsBuilder AutoRegister(this ContainerBuilder containerBuilder,
                                                              Action <AutoRegisterOptionsBuilder> setupAction,
                                                              params IAssemblySelector[] assemblySelectors)
        {
            var builder = new AutoRegisterOptionsBuilder();

            if (!assemblySelectors.IsNullOrEmpty())
            {
                builder.Assemblies(assemblySelectors.SelectMany(s => s.Find()));
            }

            setupAction?.Invoke(builder);

            containerBuilder.RegisterModule(new AutoRegisterModule(builder));

            return(builder);
        }
예제 #3
0
        public static AutoRegisterOptionsBuilder AssembliesFromBaseDirectory(this AutoRegisterOptionsBuilder optionsBuilder,
                                                                             Func <string, Assembly> assemblyLoader,
                                                                             IList <string> includes = null,
                                                                             IList <string> excludes = null)
        {
            var assemblySelector = new CompositeAssemblySelector();

            assemblySelector.Union(new DirectoryAssembliesSelector(assemblyLoader));
            if (includes != null)
            {
                assemblySelector.Includes(includes);
            }

            if (excludes != null)
            {
                assemblySelector.Excludes(excludes);
            }

            return(AssemblySelector(optionsBuilder, assemblySelector));
        }
예제 #4
0
 public static AutoRegisterOptionsBuilder AssemblySelectors(this AutoRegisterOptionsBuilder optionsBuilder, params IAssemblySelector[] assemblySelectors)
 {
     return(optionsBuilder.Assemblies(assemblySelectors.SelectMany(it => it.Find())));
 }
예제 #5
0
 public static AutoRegisterOptionsBuilder AssemblySelector(this AutoRegisterOptionsBuilder optionsBuilder, IAssemblySelector assemblySelector)
 {
     return(optionsBuilder.Assemblies(assemblySelector.Find()));
 }
예제 #6
0
 public static AutoRegisterOptionsBuilder Enable(this AutoRegisterOptionsBuilder optionsBuilder, IAutoRegisterFeature feature)
 {
     return(optionsBuilder.Feature(feature));
 }