// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.Configure <RabbitOptions>(Configuration.GetSection("RabbitMq")); var rabbitOptions = Configuration.GetSection("RabbitMq").Get <RabbitOptions>(); services.AddSingleton <IQueueProvider, RabbitMqProvider>(provider => { var credentials = new MqCredentials(rabbitOptions.Credentials.HostName, rabbitOptions.Credentials.UserName, rabbitOptions.Credentials.Password, rabbitOptions.QueueName); var rabbitProvider = new RabbitMqProvider(credentials, rabbitOptions.QueueName); rabbitProvider.Bind(); //rabbitProvider.Subscribe(ReceiveMessage.GetMes); return(rabbitProvider); }); services.AddSingleton <IRabbitService>(new RabbitService(p => { p.Credentials = rabbitOptions.Credentials; p.AutoDelete = rabbitOptions.AutoDelete; p.QueueName = rabbitOptions.QueueName; })); services.AddControllers(); }
public RabbitMqProvider(MqCredentials credentials, string QueueName) { _QueueName = QueueName; _connectionFactory = new ConnectionFactory { HostName = credentials.HostName, UserName = credentials.UserName, Password = credentials.Password, Port = AmqpTcpEndpoint.UseDefaultPort }; }