دوست عزیز منم گشتم. داخل کدوم تاپیک هست نمیدونم.

ولی این کدشه.



  • string source =
  • @"
  • namespace Foo
  • {
  • public class Bar
  • {
  • static void Main(string[] args)
  • {
  • Bar.SayHello();
  • }
  • public static void SayHello()
  • {
  • System.Console.WriteLine(""Hello World"");
  • }
  • }
  • }
  • ";





و حال کامپایل این رشته



  • using System;
  • using System.Collections.Generic;
  • //دو فضاي نامي كه براي اين منظور اضافه شده‌اند
  • using Microsoft.CSharp;
  • using System.CodeDom.Compiler;
  • namespace compilerTest
  • {
  • class Program
  • {
  • static void compileIt1()
  • {
  • //سورس كد ما جهت كامپايل
  • string source =
  • @"
  • namespace Foo
  • {
  • public class Bar
  • {
  • static void Main(string[] args)
  • {
  • Bar.SayHello();
  • }
  • public static void SayHello()
  • {
  • System.Console.WriteLine(""Hello World"");
  • }
  • }
  • }
  • ";
  • //تعيين نگارش كامپايلر مورد استفاده
  • Dictionary<string, string> providerOptions = new Dictionary<string, string>
  • {
  • {"CompilerVersion", "v3.5"}
  • };
  • //تعيين اينكه كد ما سي شارپ است
  • CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions);
  • //تعيين اينكه خروجي يك فايل اجرايي است بعلاوه مشخص سازي محل ذخيره سازي فايل نهايي
  • CompilerParameters compilerParams = new CompilerParameters
  • {
  • OutputAssembly = "D:\\Foo.EXE",
  • GenerateExecutable = true
  • };
  • //عمليات كامپايل در اينجا صورت مي‌گيرد
  • CompilerResults results = provider.CompileAssemblyFromSource(compilerParams, source);
  • //اگر خطايي وجود داشته باشد نمايش داده خواهد شد
  • Console.WriteLine("Number of Errors: {0}", results.Errors.Count);
  • foreach (CompilerError err in results.Errors)
  • {
  • Console.WriteLine("ERROR {0}", err.ErrorText);
  • }
  • }
  • static void Main(string[] args)
  • {
  • compileIt1();
  • Console.WriteLine("Press a key...");
  • Console.ReadKey();
  • }
  • }
  • }