elecron调用C#dll

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版本号/

posted @ 2021-11-23 13:03  后凤凰  阅读(622)  评论(0编辑  收藏  举报