CodeDomProvider.CreateCompiler()已经过时了

本文关键字:过时 CreateCompiler CodeDomProvider | 更新日期: 2023-09-27 17:54:31

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");

我如何写这段代码来消除这个警告:

System.CodeDom.Compiler.CodeDomProvider.CreateCompiler()'已经过时:'"调用者不应该使用ICodeCompiler接口,而应该直接使用CodeDomProvider类上的方法。那些从CodeDomProvider继承的人必须仍然实现这个接口,并且应该排除这个警告,或者也取消这个方法。**

CodeDomProvider.CreateCompiler()已经过时了

请使用以下方法:

CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");
扩展:

if (CodeDomProvider.IsDefinedLanguage(language))
{
    CodeDomProvider provider = CodeDomProvider.CreateProvider(language);
    // ...
}
else
    Console.WriteLine("ERROR");
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");