study math

更新时间:2022-11-27 11:53:58 阅读: 评论:0


2022年11月27日发(作者:3014错误)

在Nodejs中如何调⽤C#的代码

最近需要在Nodejs中⽤到C#的代码,从⽹上了解到可以采⽤Edgejs来实现Nodejs与C#的代码交互,

直接复制⽹上的代码运⾏总是出各种错,填了不少坑,现在把⾃⼰的案例代码⼤致整理⼀下,⽅便以后⾃⼰查询。

⼀、安装

运⾏命令⾏(CMD),进⼊当前项⽬的⽬录,执⾏命令“npminstalledge”进⾏安装。(这⾥也可以选择全局安装,具体操作就不说了)

⼆、调⽤

在⽤和C#代码交互的时候,有三种⽅式:

1.第⼀种⽅式是将c#的代码封装成dll,然后在nodejs⾥⾯调⽤

代码⽰例如下:

Nodejs:

//引⼊Edge模块varedge=require('./node_modules/edge');

//定义⽅法varStudyMath=({

asmblyFile:'../../_lib/',//asmblyFile为dll路径

atypeName:'',//RockyNamespace为命名空间,Study为类名

methodName:'StudyMath'//StudyMath为⽅法名});

//s为传递⽅法传递的参数,result为⽅法返回的结果

StudyMath(s,function(error,result){

if(error)throwerror;

if(0==result)

;//Succesl

;//Failure

});

C#:

namespaceRockyNamespace

{

publicclassStudy

{

//C#中,⽅法必须⽤async异步修饰,且返回值必须为Task,其中,input即为⽅法的参数,上⽂的s=>input

publicasyncTaskStudyMath(objectinput)

{

//⽅法体

return0;

}

}

}

2.第⼆种⽅式是将c#的代码⽤async处理后直接在nodejs中书写:

代码⽰例如下:

Nodejs:

varedge=require('./node_modules/edge');

varStudyMath=(function(){/*

//tion;

c;

async(input)=>{

//⽅法体

return0;

}

*/});

//s为传递⽅法传递的参数,result为⽅法返回的结果

StudyMath(s,function(error,result){

if(error)throwerror;

if(0==result)

;//Success

el

;//Failure

});

3.第三种⽅式是第⼀种和第⼆种的结合

代码⽰例如下:

Nodejs:

varedge=require('./node_modules/edge');

varStudyMath=(function(){/*

c;

;

namespaceRockyNamespace

{

publicclassStartup

{

//C#中,⽅法必须⽤async异步修饰,且返回值必须为Task,其中,input即为⽅法的参数,上⽂的s=>input

publicasyncTaskInvoke(objectinput)

{

//⽅法体

return0;

}

}

}

*/});

//s为传递⽅法传递的参数,result为⽅法返回的结果

StudyMath(s,function(error,result){

if(error)throwerror;

if(0==result)

;//Success

el

;//Failure

});

需注意的是,采⽤第三种⽅式的时候,必须将类名命名成Startup,⽅法名命名为Invoke,

因为在edge内部中,会默认将typeName定义为Startup,将methodName定义为Invoke

类似如下的定义:

varfunc=({

typeName:'Startup',

methodName:'Invoke'

});

Edgejs官⽹:

这⾥推荐⼀篇写的⽐较详细的⽂章:

本文发布于:2022-11-27 11:53:58,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/30841.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:亚麻油酸
下一篇:hospitalized
标签:study math
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图
  • 我要关灯
    我要开灯
  • 返回顶部