如何在C#中解析部分脚本代码?

时间:2018-07-06 09:20:22

标签: c# wpf file oop

我有一个任务来创建一个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);
        }
    }

1 个答案:

答案 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