我的工作有一个使用数据库(mongodB(来存储数据的应用程序。我想在程序安装完成后更改该数据。但用户在安装应用之前设置此设置。
我有一个功能要求用户输入然后安装应用程序,另一个功能在应用程序完成安装后更改mongodB。
我的问题是我的"change mongo"函数说变量在当前上下文中不存在。
如何将console.readline((的结果存储在函数A内的变量中,并使用该变量连接函数B内的字符串?
public static void downloadAndInstall37CineAgent()
{
Console.Write("Enter Path to Cert: ");
string certPath = Console.ReadLine();
Console.Write("Enter Password to Cert: ");
string certPass = Console.ReadLine();
Console.Write("Network Manager Host: ");
var HostName = Console.ReadLine();
Console.Write("Streaming Engine Host Name: ");
var streamName = Console.ReadLine();
changeMongo();
}
public static void changeMongo()
{
var client = new MongoClient("mongodb://localhost:27017");
IMongoDatabase db = client.GetDatabase("CineNetGlobalSettings");
var collection = db.GetCollection<BsonDocument>("CineNetSettings");
var filter = Builders<BsonDocument>.Filter.Eq("_id", "NetworkManagerHost");
var update = Builders<BsonDocument>.Update.Set("Value", hostname);
var filterUrl = Builders<BsonDocument>.Filter.Eq("_id", "NetworkManagerUrl");
var updateUrl = Builders<BsonDocument>.Update.Set("Value", hostname);
var filterStream = Builders<BsonDocument>.Filter.Eq("_id", "WowzaIpAddress");
var updateStream = Builders<BsonDocument>.Update.Set("Value", streamName);
}
只能在定义它们的上下文中访问。
除非将变量定义为全局变量,否则一个方法中的这些变量不会传递到下一个方法或返回到调用方法,除非您正确传递或返回这些变量。
对于您的项目,您将需要更改您的方法以及您调用它的方式,
public static void changeMongo(string hostname, string streamName)
您将更新您正在进行的调用以包含两个参数,
changeMongo(Hostname, streamName);
实质上,您正在调用changeMongo
并传递将在该方法中使用的两个值。请注意,变量的名称绑定到函数中初始化的变量的名称。changeMongo
函数具有hostName
而不是HostName
(这是downloadAndInstall37CineAgent
方法的一部分(。主机名被翻译成主机名,因为这是changeMongo方法上的"第一个"参数。