在nodejs中使用edge绑定DLL库不成功



我试图学习如何使用edge(node.js模块)绑定预编译的DLL,但它的工作方式不对。。。

我的DLL是一个非常简单的库,它已经在其他.Net程序中进行了多次测试。我在Jscript.Net:中编写了DLL文件

import System;
import System.Console;
import System.IO;
package power{
    public class testp {
            function hello (){
            var time_1 = DateTime.Now;
            for (var i =0; i<10000; i++){
                Console.WriteLine ("hello world!");
            };
            var time_2 = DateTime.Now;
            Console.WriteLine (time_2-time_1);
            };
    };
};

它真的很简单,Hello()方法将在stdout中打印出10000个"helloworld";

我可以在其他Jscript.net程序中调用它,方法是:

import System;
import System.Console;
import System.IO;
import power;
var pri = new testp;
pri.hello();

根据官方网站,我已经尝试过:

var edge = require("edge");
var clrMethod = edge.func({
    assemblyFile: 'power.dll',
    typeName: 'power.testp',
    methodName: 'hello'
});
clrMethod();

我的问题:我怎样才能在edge中成功地调用它?

据我所知,Edge.js不支持JScript.NET。至少它在文档中没有提到它。

你在C#中试过这个例子吗?问题是Edge.js要求DLL中导出的方法必须具有特定的签名:

Func<object,Task<object>>

当然,你的DLL没有导出具有正确签名的函数,这就是它没有像你预期的那样工作的原因。

最新更新