2013-01-18 20 views
9
CSharpCodeProvider codeProvider = new CSharpCodeProvider(); 
ICodeCompiler MyCompiler = codeProvider.CreateCompiler(); 
CompilerParameters myParameters = new CompilerParameters(); 
myParameters.GenerateExecutable = true; 
myParameters.OutputAssembly = @"prog.exe"; 
myParameters.TreatWarningsAsErrors = false; 
CompilerResults results = myCompiler.CompileAssemblyFromFile(myParameters,"prog.txt"); 

Come posso scrivere questo codice per eliminare questo avvertimento:CodeDomProvider.CreateCompiler() è obsoleto

System.CodeDom.Compiler.CodeDomProvider.CreateCompiler() 'è obsoleta:' "chiamanti non dovrebbe utilizzare l'interfaccia ICodeCompiler ed utilizzi i metodi direttamente sulla classe CodeDomProvider. Coloro che eredita da CodeDomProvider deve comunque implementare questa interfaccia, e deve escludere questo avviso o anche obsolete questo metodo. **

risposta

7

Uso this method invece:

CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp"); 

estesa:

if (CodeDomProvider.IsDefinedLanguage(language)) 
{ 
    CodeDomProvider provider = CodeDomProvider.CreateProvider(language); 
    // ... 
} 
else 
    Console.WriteLine("ERROR"); 
-1
CSharpCodeProvider codeProvider = new CSharpCodeProvider(); 
CompilerParameters myParameters = new CompilerParameters(); 
myParameters.GenerateExecutable = true; 
myParameters.OutputAssembly = @"prog.exe"; 
myParameters.TreatWarningsAsErrors = false; 
CompilerResults results = codeProvider.CompileAssemblyFromFile(myParameters, "prog.txt"); 
+4

Si prega di aggiungere una spiegazione, non solo il codice. –

Problemi correlati