我有一个任务来创建一个UI,以从脚本运行方法。 我制作了一个方法,该方法显示“脚本”中的“方法”的名称,并且在UI旁边有一个复选框。 我有一个问题,当我单击复选框时,我不知道只邀请这种方法的一段代码。
private void GetAllDSCConfigurationName(string psFile, DSCTreeViewItemFolder item)
{
var file = new DSCTreeViewItemScipt() { Script = psFile };
item.AddChild(file);
try
{
using (StreamReader sr = new StreamReader(psFile))
{
string line;
while ((line = sr.ReadLine()) != null)
{
if (line.StartsWith("Configuration"))
{
file.AddChild(new DSCTreeViewItemConfiguration() { ConfigurationName = line });
}
}
}
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
}
答案 0 :(得分:0)
您可以签入相同的if语句:
if(line.StartsWith("Configuration") && line.Contains("LogOff"))
{
// do your stuff
break; // cause you don't need to look for other methods
}
如果您在UI中拥有方法的名称,则可以将其传递给Contains方法。 您还可以改善代码:
string allLines = sr.ReadToEnd();
string configurations = allLines.Split("Configuration");
string methodToCall = configurations.FirstOrDefault(conf => conf.Contains("LogOff")); // or you can pass name of your method from parameter