📅  最后修改于: 2023-12-03 15:08:03.910000             🧑  作者: Mango
如果您的应用程序需要使用 Rabbitmq,但是您的场景没有控制台输入,您可能需要一些新的工具来帮助您使其正常工作。
下面是一些建议:
您可以使用环境变量来传递连接到 Rabbitmq 的信息。这种方法可以允许您在不暴露连接信息的情况下启动您的应用程序。
var factory = new ConnectionFactory()
{
HostName = Environment.GetEnvironmentVariable("RABBITMQ_HOST"),
Port = int.Parse(Environment.GetEnvironmentVariable("RABBITMQ_PORT")),
UserName = Environment.GetEnvironmentVariable("RABBITMQ_USERNAME"),
Password = Environment.GetEnvironmentVariable("RABBITMQ_PASSWORD")
};
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
// Your code here
}
另一种方法是使用配置文件。你可以使用 .json 或 .xml 文件来存储 Rabbitmq 连接信息,并在应用程序中读取它们。
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", false, true)
.Build();
var factory = new ConnectionFactory()
{
HostName = configuration.GetSection("Rabbitmq:HostName").Value,
Port = int.Parse(configuration.GetSection("Rabbitmq:Port").Value),
UserName = configuration.GetSection("Rabbitmq:UserName").Value,
Password = configuration.GetSection("Rabbitmq:Password").Value
};
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
// Your code here
}
如果您的应用程序可以接受参数,则可以将 Rabbitmq 连接信息作为参数传递。
var hostName = args[0];
var port = int.Parse(args[1]);
var userName = args[2];
var password = args[3];
var factory = new ConnectionFactory()
{
HostName = hostName,
Port = port,
UserName = userName,
Password = password
};
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
// Your code here
}
最后,您可以根据您的应用程序需要选择其中一种方法(或结合使用),以使您的应用程序能够在没有控制台读取的情况下使用 Rabbitmq。