const edge = require('electron-edge-js');
const log=require('electron-log');
// 定义方法
var Call = edge.func({
// assemblyFile为dll路径
assemblyFile: './dll/demofun.dll',
// Client为命名空间,CallCallService类名
typeName: 'demofun.Main',
// Call为方法名
methodName: 'Call'
});
module.exports={
Call,
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace demofun
{
public class Main
{
/// <summary>
/// 前端调用后端开放接口,封装给nodejs调用
/// C#中,方法必须用async异步修饰,且返回值必须为Task<object>,其中,request即为方法的参数
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<object> Call(object request)
{
//方法体
return request;
}
}
}
electron 调用时使用的是 electron-edge-js
edge-js可以调用预先编译
对不同版本的electron需要预先编辑 edge_coreclr.node edge_nativeclr.node
在这个目录下
nodemodules/electron-edge-js/lib/native/win2/electron版本号/