public MassTransitRegistryBase(Action<IEndpointFactoryConfigurator> configurationAction) { RegisterBusDependencies(); var typeScanner = new EndpointTypeScanner(); Scan(scanner => { string assemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); scanner.AssembliesFromPath(assemblyPath, assembly => { return assembly.GetName().Name.StartsWith("MassTransit.Transports."); }); scanner.With(typeScanner); }); RegisterEndpointFactory(x => { foreach (Type transportType in typeScanner.TransportTypes) { x.RegisterTransport(transportType); } configurationAction(x); }); }
/// <summary> /// Overload to allow explicit assembly scanning specification. /// /// EX: since Assembly.GetExecutingAssembly().Location could return null if the Assembly.GetExecutingAssembly() was dynamically loaded from a resource, this overload allows for explicit assemblies scanning strategies. /// </summary> /// <param name="configurationAction"></param> /// <param name="transportAssemblyScanner"></param> public MassTransitRegistryBase(Action <IEndpointFactoryConfigurator> configurationAction, Action <IAssemblyScanner> transportAssemblyScanner) { RegisterBusDependencies(); var typeScanner = new EndpointTypeScanner(); Scan(scanner => { transportAssemblyScanner(scanner); scanner.With(typeScanner); }); RegisterEndpointFactory(x => { foreach (Type transportType in typeScanner.TransportTypes) { x.RegisterTransport(transportType); } configurationAction(x); }); }
/// <summary> /// Overload to allow explicit assembly scanning specification. /// /// EX: since Assembly.GetExecutingAssembly().Location could return null if the Assembly.GetExecutingAssembly() was dynamically loaded from a resource, this overload allows for explicit assemblies scanning strategies. /// </summary> /// <param name="configurationAction"></param> /// <param name="transportAssemblyScanner"></param> public MassTransitRegistryBase(Action<IEndpointFactoryConfigurator> configurationAction, Action<IAssemblyScanner> transportAssemblyScanner) { RegisterBusDependencies(); var typeScanner = new EndpointTypeScanner(); Scan(scanner => { transportAssemblyScanner(scanner); scanner.With(typeScanner); }); RegisterEndpointFactory(x => { foreach (Type transportType in typeScanner.TransportTypes) { x.RegisterTransport(transportType); } configurationAction(x); }); }