在C#中调用js脚本,js脚本中引用了node.js模块。

有些时候,在C#中执行一些操作的时候,自己用c#写可能不是很方便,而通过js脚本去实现可以在性能和遍历性上面有很大的提升,我也是个菜鸟小白一枚。初次去实现在c#中调用js脚本时,也遇到了不少麻烦。在此稍微总结一下,可能不是很专业。

   如果是单纯的去执行一个js脚本,在js脚本中也没有涉及到require Node.js模块,那么相对来说在c#中调用js脚本去实现功能比较简单,不用去引用库什么的。例子如下:

 1、首先新建一个winForm测试项目,添加一个按钮。引入两个头using System.Reflection; using System.CodeDom.Compiler;

 2、接下来便可直接写代码了,贴图如下:

在按钮的响应事件中,首先初始化要传入的参数对象,接着调用自定义GetJsMethd()函数。接下来看看自定义的函数:

简单将自己操作的部分就是将js代码写入到StringBuilder中,然后通过Microsoft.JScript.JScriptCodeProvider()去解析js代码,其它的代码就照猫画虎就可以。

 若你的js脚本代码中引用了node.js模块,那你就需要用到Edge.Js库,在vs中引入该库,引入步骤:Tools-Nuget Package Manage - Manage Nuget package for solution在里面找到安装就好了,然后引入,在代码头部添加using EdgeJs;

 第二步将js脚本中引用的node.js模块文件放到项目的bin目录下。

 第三布可以写代码了:

 

定义一个函数必须步骤:

public static async void Start()

{

var func = Edge.Func(@“

const w = require(引入的模块名);

return function (data,callback){

//这边可以增加其他操作

callback(null,js函数要返回的值);//这句代码是必须要的,回传函数调用返回值。

}");

var b  = await func(传入函数的参数);

}

相信大家也可以看出来,在Func函数中是一段js代码的字符串。

接下来就是调用我们写的这个函数了,非常方便一句话:

Task.run((Action)start).wait();

完成。

也并不是很难主要用到了Edge.js库,有兴趣可以去微软官网文档看一看这个库的详解。

简单的分享就到此结束了。

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值