public static void BeginFile(string file, string info) { Program.MainForm.StatusBar.Text = info; if (!s_MethodBodyModifiers.ContainsKey(file)) { MethodBodyModifier methodBodyModifier = new MethodBodyModifier(file, s_OutputPath); s_MethodBodyModifiers[file] = methodBodyModifier; } }
private void replaceMethodBody_Click(object sender, EventArgs e) { if (assemblyList.Items.Count <= 0) { return; } string path = exportDir.Text.Trim(); if (path.Length <= 0) { MessageBox.Show("请先选择一个输出目录!"); return; } int curNum = 0; int totalNum = assemblyList.Items.Count; progressBar.Value = 0; statusLabel.Text = "开始方法体替换......"; MethodBodyModifier.ErrorTxts.Clear(); Dictionary <string, MethodBodyModifier> methodBodyModifiers = new Dictionary <string, MethodBodyModifier>(); foreach (string s in assemblyList.Items) { statusLabel.Text = "对文件 " + s + " 进行方法体替换中......"; Application.DoEvents(); if (!methodBodyModifiers.ContainsKey(s)) { MethodBodyModifier methodBodyModifier = new MethodBodyModifier(s, path); methodBodyModifiers[s] = methodBodyModifier; } methodBodyModifiers[s].BeginReplace(); methodBodyModifiers[s].Replace(srcClassName.Text, targetClassName.Text); methodBodyModifiers[s].EndReplace(); curNum++; progressBar.Value = curNum * 100 / totalNum; Application.DoEvents(); } progressBar.Value = 0; statusLabel.Text = "方法体替换完毕."; resultCtrl.Text = string.Join("\r\n", MethodBodyModifier.ErrorTxts.ToArray()); MethodBodyModifier.ErrorTxts.Clear(); }