/// <summary> /// This method gets called by the runtime. Use this method to add services to the container. /// </summary> /// <param name="services"></param> public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddSingleton <DiscoveryShuttle>(sp => { var connection = sp.GetRequiredService <RabbitMQConnection>(); var iLifetimeScope = sp.GetRequiredService <ILifetimeScope>(); var bus = new DiscoveryShuttle(connection, "teste", iLifetimeScope); // Config bus.Subscribe <FoodMessage, SendFoodHandler>(); bus.Subscribe <FoodMessage, TesteHandler>(); return(bus); }); services.AddTransient <RabbitMQConnection>(sp => { var factory = new ConnectionFactory() { HostName = "localhost", UserName = "******", Password = "******" }; var connection = new RabbitMQConnection(factory); return(connection); }); services.AddTransient <SendFoodHandler>(); services.AddTransient <TesteHandler>(); var builder = new ContainerBuilder(); builder.Populate(services); var container = builder.Build(); container.Resolve <DiscoveryShuttle>(); return(new AutofacServiceProvider(container)); }
public SendFoodSender(DiscoveryShuttle shuttle) { this.shuttle = shuttle; }