>백엔드 개발 >C++ >C# 애플리케이션 내에서 JavaScript 코드를 어떻게 구문 분석하고 실행할 수 있습니까?

C# 애플리케이션 내에서 JavaScript 코드를 어떻게 구문 분석하고 실행할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-27 20:01:12948검색

How Can I Parse and Execute JavaScript Code within a C# Application?

C#에서 JS를 구문 분석하고 실행하려면 제공된 코드 조각을 사용하면 됩니다. 이는 Windows 스크립트 엔진을 래핑하고 32비트 및 64비트 환경을 지원합니다. 특정 경우에는 .JS 코드에 따라 일부 HTML DOM 요소(MyItem 클래스와 함께 '명명된 항목' 기능 사용)를 에뮬레이트/구현해야 할 수도 있습니다. 이것이 바로 Internet Explorer의 기능입니다.

다음은 Internet Explorer로 수행할 수 있는 작업의 몇 가지 예입니다.

1) 직접 표현 평가:

Console.WriteLine(ScriptEngine.Eval("jscript", "1+2/3"));

1.66666666666667을 표시합니다.

2) 선택적 함수 호출 인수:

using (ScriptEngine engine = new ScriptEngine("jscript"))
{
  ParsedScript parsed = engine.Parse("function MyFunc(x){return 1+2+x}");
  Console.WriteLine(parsed.CallMethod("MyFunc", 3));
}

6이 표시됩니다.

3) 명명된 항목과 선택적 인수가 포함된 함수 호출:

using (ScriptEngine engine = new ScriptEngine("jscript"))
{
    ParsedScript parsed = engine.Parse("function MyFunc(x){return 1+2+x+My.Num}");
    MyItem item = new MyItem();
    item.Num = 4;
    engine.SetNamedItem("My", item);
    Console.WriteLine(parsed.CallMethod("MyFunc", 3));
}

[ComVisible(true)] // Script engines are COM components.
public class MyItem
{
    public int Num { get; set; }
}

10이 표시됩니다.

편집: 스크립트 언어 대신 CLSID를 사용할 수 있는 기능을 추가했습니다. 이름을 사용하여 다음과 같이 새롭고 빠른 IE9 "chakra" 자바스크립트 엔진을 재사용할 수 있습니다.

using (ScriptEngine engine = new ScriptEngine("{16d51579-a30b-4c8b-a276-0ff4dc41e755}"))
{
    // continue with chakra now
}

위 내용은 C# 애플리케이션 내에서 JavaScript 코드를 어떻게 구문 분석하고 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.