コード例 #1
0
		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);
                });
        }
コード例 #2
0
        /// <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);
            });
        }
コード例 #3
0
        /// <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);
                });
        }