2016-10-05 6 views
0

Je me demandais s'il y avait un moyen de passer une valeur de variable dans un code qui sera compilé One Time en utilisant CSharpCodeProvider.
Définir la valeur de la variable en utilisant CSharpCodeProvider

par exemple:

string code = @" 
using System; 

namespace First 
{ 
    public class Program 
    { 
     public int Value; // pass this value 
     public static void Main() 
     { 
     " + 
      "Console.WriteLine(\"Hello + Value\");" 
      + @" 
     } 
    } 
} 

« ;

Compile Méthode:

public void Compile(String Code) 
{ 
    CSharpCodeProvider provider = new CSharpCodeProvider(); 
    CompilerParameters parameters = new CompilerParameters(); 

    parameters.ReferencedAssemblies.Add("System.Drawing.dll"); 
    parameters.GenerateInMemory = true; 
    parameters.GenerateExecutable = false; 

    CompilerResults results = provider.CompileAssemblyFromSource(parameters, Code); 
} 

donc je veux être en mesure de transmettre une valeur de l'Value exemple 2

et ce que je veux dire par ONE TIME est comme compile time donc le code compilé sera toujours dans son exécution affichera la valeur: 2 chaque fois que j'ai exécuté l'application.

J'espère que c'est clair!

+0

Pouvez-vous vous assurer que le 'est dans un recueil HSC format spécifique? Par exemple. que la valeur à définir est 'public int Value = {0};'? – svick

Répondre

0

les détails de résoudre à l'aide référence Mono.Cecil Documentatin