最近在网上闲逛, 又发现个好东西, edge.JS
这个库可以让 node.JS 调用 C# 的代码, 还可以让 C# 调用 node.JS 的代码, 看到这里, 只问你服不服? 反正我是很惊叹了......
不过 edge.JS 也有个限制, 必须是. net 4.5 以上才可以用, 因为使用了一些. net 新特性 Task,asyn,await, 这些特性正好对应 node.JS 的异步回调
来自 edge.JS 官网 http://tjanczuk.github.io/edge/#/2 的例子, node.JS 调用 C#
- var edge = require('edge');
- var hello = edge.func(function () {/*
- async (input) => {
- return ".NET welcomes" + input.ToString();
- }
- */});
- hello('Node.js', function (error, result) {
- if (error) throw error;
- console.log(result);
- });
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
上面在 JavaScript 的函数体内部执行了一段 C# 代码, 是不很神奇?
接着是官网的另一个例子, 在 C# 中调用 node.JS
- using EdgeJs;
- public static async void Start()
- {
- var func = Edge.Func(@"
- return function (data, cb) {
- cb(null, 'Node.js' + process.version + 'welcomes' + data);
- }
- ");
- Console.WriteLine(await func(".NET"));
- }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
唯一别扭的是这一点, Node.JS 里无法直接调用. NET 的方法, 必须用封装成 Func<object,Task<object>> 异步回调方式
看别人写的这一篇展示的更加完美
Edge 实现 Node.JS 与. NET 互操作 (包括 UI 界面示例)
来源: http://www.bubuko.com/infodetail-2931429.html