> 백엔드 개발 > C++ > WPF 애플리케이션의 파일에서 C# 코드를 동적으로 실행하려면 어떻게 해야 합니까?

WPF 애플리케이션의 파일에서 C# 코드를 동적으로 실행하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2025-01-07 19:37:42
원래의
550명이 탐색했습니다.

How Can I Dynamically Execute C# Code from a File in a WPF Application?

C# 코드 파일의 동적 실행

질문:

WPF C# 애플리케이션에는 애플리케이션의 런타임 디렉터리에 있는 별도의 텍스트 파일에 저장된 코드를 실행하는 데 필요한 버튼이 함께 제공됩니다.

해결책:

텍스트 파일의 코드를 동적으로 실행하려면 다음 단계를 따르세요.

  1. 컴파일 코드: C# 컴파일러(예: CSharpCodeProvider)를 사용하여 텍스트 파일의 코드를 어셈블리로 컴파일합니다.
  2. 컴파일된 어셈블리의 인스턴스 만들기: System.Reflection.Assembly 클래스의 CreateInstance() 메서드를 사용하여 컴파일된 어셈블리의 인스턴스를 만듭니다.
  3. 메서드 호출: System.Reflection.Type 클래스의 GetMethod() 및 Invoke() 메서드를 사용하여 인스턴스에서 원하는 메서드를 호출합니다.

동적으로 컴파일된 클래스 메서드를 실행하는 방법에 대한 샘플 코드는 다음과 같습니다.

<code class="language-csharp">using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Net;
using Microsoft.CSharp;
using System.CodeDom.Compiler;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string source =
            @"
namespace Foo
{
    public class Bar
    {
        public void SayHello()
        {
            System.Console.WriteLine(""Hello World"");
        }
    }
}
            ";

            Dictionary<string, string> providerOptions = new Dictionary<string, string>
                {
                    {"CompilerVersion", "v3.5"}
                };
            CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions);

            CompilerParameters compilerParams = new CompilerParameters
                {GenerateInMemory = true,
                 GenerateExecutable = false};

            CompilerResults results = provider.CompileAssemblyFromSource(compilerParams, source);

            if (results.Errors.Count != 0)
                throw new Exception("编译失败!");

            object o = results.CompiledAssembly.CreateInstance("Foo.Bar");
            MethodInfo mi = o.GetType().GetMethod("SayHello");
            mi.Invoke(o, null);
        }
    }
}</code>
로그인 후 복사

이러한 단계에 따라 WPF 애플리케이션의 코드 파일에서 C# 코드를 동적으로 실행할 수 있습니다.

위 내용은 WPF 애플리케이션의 파일에서 C# 코드를 동적으로 실행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿