1

我尝试学习如何使用 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个“hello world”;

我可以通过以下方式在我的其他 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();

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

4

1 回答 1

1

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

您是否尝试过C# 中的示例?问题是 Edge.js 要求 DLL 中的导出方法必须具有特定的签名:

Func<object,Task<object>>

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

于 2014-04-26T20:43:46.560 回答