示例#1
0
        /// <summary>
        /// Searches the specified assembly and registers all the use case and validator classes.
        /// </summary>
        /// <param name="requestBus">The <see cref="RequestBus"/> instance where to register the use cases and validators</param>
        /// <param name="assembly">The assembly to be searched.</param>
        public static void RegisterAllUseCases(this RequestBus requestBus, Assembly assembly)
        {
            if (requestBus == null)
            {
                throw new ArgumentNullException(nameof(requestBus));
            }
            if (assembly == null)
            {
                throw new ArgumentNullException(nameof(assembly));
            }

            RegisterAllInternal(requestBus, assembly);
        }
示例#2
0
        /// <summary>
        /// Searches the assembly containing the specified type and registers all the use case and validator classes.
        /// </summary>
        /// <param name="requestBus">The <see cref="RequestBus"/> instance where to register the use cases and validators</param>
        /// <param name="type">A <see cref="Type"/> instance contained by the assembly to be searched.</param>
        public static void RegisterAllUseCases(this RequestBus requestBus, Type type)
        {
            if (requestBus == null)
            {
                throw new ArgumentNullException(nameof(requestBus));
            }
            if (type == null)
            {
                throw new ArgumentNullException(nameof(type));
            }

            Assembly assembly = type.Assembly;

            RegisterAllInternal(requestBus, assembly);
        }
示例#3
0
        private static void RegisterAllInternal(RequestBus requestBus, Assembly assembly)
        {
            IEnumerable <Type> handlerTypes = assembly.GetAllUseCases();

            foreach (Type handlerType in handlerTypes)
            {
                requestBus.RegisterUseCase(handlerType);
            }

            IEnumerable <Type> validatorTypes = assembly.GetAllRequestValidators();

            foreach (Type validatorType in validatorTypes)
            {
                requestBus.RegisterValidator(validatorType);
            }
        }
示例#4
0
        /// <summary>
        /// Searches all the assemblies from the current <see cref="AppDomain"/>
        /// and registers all the use case and validator classes.
        /// </summary>
        /// <param name="requestBus">The <see cref="RequestBus"/> instance where to register the use cases and validators</param>
        public static void RegisterAllUseCases(this RequestBus requestBus)
        {
            if (requestBus == null)
            {
                throw new ArgumentNullException(nameof(requestBus));
            }

            AppDomain appDomain = AppDomain.CurrentDomain;

            Assembly[] assemblies = appDomain.GetAssemblies();

            foreach (Assembly assembly in assemblies)
            {
                RegisterAllInternal(requestBus, assembly);
            }
        }