.NET에서 런타임에 새 코드 컴파일 및 실행
사용자 제공 방정식을 처리하는 애플리케이션을 개발하면 계산 효율성 측면에서 문제가 발생할 수 있습니다. . 전통적으로 이러한 방정식은 수동으로 구문 분석되어 대용량 데이터를 처리할 때 오버헤드가 발생했습니다. 보다 효율적인 솔루션은 런타임 중에 방정식을 함수로 변환하여 지속적인 구문 분석이 필요하지 않도록 하는 것입니다.
Is This Possible in .NET?
예, 컴파일하고 Microsoft.CSharp, System.CodeDom.Compiler 및 System.Reflection의 엔터티를 사용하여 .NET에서 런타임에 새 코드를 실행할 수 있습니다. 네임스페이스.
예: 메소드 컴파일 및 호출
클래스를 메소드로 컴파일하고 실행하는 이 예를 생각해 보세요. it:
string sourceCode = @" public class SomeClass { public int Add42 (int parameter) { return parameter += 42; } }"; var compParms = new CompilerParameters { GenerateExecutable = false, GenerateInMemory = true }; var csProvider = new CSharpCodeProvider(); CompilerResults compilerResults = csProvider.CompileAssemblyFromSource(compParms, sourceCode); object typeInstance = compilerResults.CompiledAssembly.CreateInstance("SomeClass"); MethodInfo mi = typeInstance.GetType().GetMethod("Add42"); int methodOutput = (int)mi.Invoke(typeInstance, new object[] { 1 }); Console.WriteLine(methodOutput); Console.ReadLine();
이점:
위 내용은 효율성 향상을 위해 .NET이 런타임에 새 코드를 컴파일하고 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!