2013-01-18 22 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"); 

Jak mogę napisać ten kod, aby wyeliminować to ostrzeżenie:CodeDomProvider.CreateCompiler() jest przestarzała

System.CodeDom.Compiler.CodeDomProvider.CreateCompiler() 'jest przestarzały:' "Dzwoniący nie powinien korzystać z interfejsu ICodeCompiler i powinno zamiast użyć metod bezpośrednio od klasy CodeDomProvider. Ci, dziedziczenie z CodeDomProvider musi jeszcze wdrożyć ten interfejs i powinny wykluczać tego ostrzeżenia czy też nieaktualne tej metody. **

Odpowiedz

7

Zastosowanie this method zamiast:

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

Rozszerzony:

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

proszę dodać wyjaśnienie, a nie tylko kod. –

Powiązane problemy