PDA

View Full Version : سوال: وارد کردن یک سورس کد داخل سورس برنامه



sysman_20
سه شنبه 05 خرداد 1388, 15:57 عصر
چگونه میتوانم یک سورس خارجی مثلا یک سورس داخل یک فایل text یا سورسی که داخل یک rich text box نوشتم رو داخل سورس یک تابع کنم؟

seven7777777
سه شنبه 05 خرداد 1388, 16:12 عصر
دوست عزیز سلام

منظورت اینه که در حین اجرای برنامه اون سورس خارجی وارد سورس برنامت بشه دیگه ، آره ؟

sysman_20
چهارشنبه 06 خرداد 1388, 22:23 عصر
کاملا درسته
اما غیر ازاین هم به کارم میاد اگه بلدید بگید.

rezatati
پنج شنبه 07 خرداد 1388, 09:34 صبح
ببین این کمکت می کنه


public object ProcessCommand(String command)
{
CSharpCodeProvider Provider = new CSharpCodeProvider();
CompilerParameters Parameters = new CompilerParameters();
CompilerResults Result;
String Source;
Parameters.GenerateExecutable = false;
Parameters.GenerateInMemory = true;
Parameters.ReferencedAssemblies.Add("System.dll");
Parameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
Source = "using System;" + Environment.NewLine +
"using System.Windows.Forms;" + Environment.NewLine +
"namespace ns {" + Environment.NewLine +
"public class Class1 {" + Environment.NewLine +
"public static object Evaluate(){" + Environment.NewLine +
"return " + command + Environment.NewLine +
"}" + Environment.NewLine +
"}" + Environment.NewLine +
"}";
Result = Provider.CompileAssemblyFromSource(Parameters, Source);
if (Result.Errors.Count > 0)
{
MessageBox.Show(Result.Errors[0].Line + " " + Result.Errors[0].ErrorText);
}
else
{
MethodInfo Info = Result.CompiledAssembly.GetType("ns.Class1").GetMethod("Evaluate");
return ((object)Info.Invoke(null, null));
}
return null;

}

این طوری هم فراخونی کن


int result = ((int)ProcessCommand("(5*6)*100-40;"));
MessageBox.Show(result.ToString());