/// <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); }
/// <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); }
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); } }
/// <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); } }