C# CodeDom использовать TextBox из формы строителей
Может быть, вы не поняли название, но мой вопрос: у меня есть Строитель. Этот конструктор создает вывод (.exe), который загружает папку с моими картинками на FTP-сервер. Я действительно хочу знать, как использовать текстовые поля из формы строителей, чтобы получить учетные данные в исходный код, который собирается скомпилировать?
Форма построителя -> TextBox (я введу учетные данные) ----> Ввод TextBox будет использоваться в качестве регистрационных данных для FTP-сервера в исходном коде, который будет скомпилирован.
Как я могу это сделать? Если я просто скажу
Temp.AppendLine(@"request.Credentials = new NetworkCredential(textBox7.Text,textBox8.Text);");
Я получаю сообщение об ошибке, потому что вывод не может найти textBox...
2 ответа
String InputCode = String.Empty;
InputCode = "MessageBox.Show((1 + 2 + 3).ToString());";
System.CodeDom.Compiler.CodeDomProvider CodeDomProvider = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("CSharp");
System.CodeDom.Compiler.CompilerParameters CompilerParameters = new System.CodeDom.Compiler.CompilerParameters();
CompilerParameters.ReferencedAssemblies.Add("System.dll");
CompilerParameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
CompilerParameters.CompilerOptions += "/target:winexe" + " " + "/win32icon:" + "\"" + textBox6.Text + "\"";
CompilerParameters.GenerateInMemory = true;
StringBuilder Temp = new StringBuilder();
Temp.AppendLine(@"using System;");
Temp.AppendLine(@"using System.Windows.Forms;");
Temp.AppendLine(@"namespace RunTimeCompiler{");
Temp.AppendLine(@"public class Test{");
Temp.AppendLine(@"public static void Main(){");
Temp.AppendLine(@"public void Ergebnis(){");
Temp.AppendLine(InputCode);
Temp.AppendLine(@"}}}}}");
System.CodeDom.Compiler.CompilerResults CompilerResults = CodeDomProvider.CompileAssemblyFromSource(CompilerParameters, Temp.ToString());
//Auf CompilerFehler prüfen
if (CompilerResults.Errors.Count > 0)
{
MessageBox.Show(CompilerResults.Errors[0].ErrorText, "Fehler bei Laufzeitkompilierung", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
Вы хотите это сделать?
Temp.AppendLine(string.Format("request.Credentials = new NetworkCredential(@\"{0}\",@\"{1}\");", textBox7.Text, textBox8.Text));