본문 바로가기

C#/예제 코드

c# 에서 자바스크립트 사용 (V8엔진)

사전지식

본 주제는 웹브라우저의 스크립트 컨트롤에 대한 내용이 아니다. (asp.net 아님)

Node.js에서도 사용되는 자바스크립트 V8엔진의 간략한 사용법을 목적으로한다.


준비물 nuget.org

※ Native패키지는 운영체제에 맞는것을 설치하여야 한다. (아래는 윈도우64bit 용)

Install-Package Microsoft.ClearScript.V8.Native.win-x64 -Version 7.2.0
Install-Package Microsoft.ClearScript.V8 -Version 7.2.0

OR

dotnet add package Microsoft.ClearScript.V8.Native.win-x64 --version 7.2.0
dotnet add package Microsoft.ClearScript.V8 --version 7.2.0

실습

※ .net6.0 ( C#10.0 에서는 Main()을 생략한다 )

using Microsoft.ClearScript;
using Microsoft.ClearScript.V8;
using System;


V8ScriptEngine v8 = new();

#region 기본편
Console.WriteLine("1+1 : " + v8.Evaluate("1+1"));
#endregion


#region 응용편
var obj = new Test() { x = 0 };

v8.AddHostObject("obj", HostItemFlags.GlobalMembers, obj);
v8.Execute("obj.x = 3");

Console.WriteLine("obj.x : " + obj.x);
Console.WriteLine("obj * 2 : " + v8.Evaluate("obj.x * 2"));

public class Test { public int x { get; init; } }
#endregion

VS2022 console

 

 

 

참조

https://dev.to/jochemstoel/v8ception--how-to-implement-v8-into-your-net-applications-2n2i