1. 程式人生 > 其它 >elecron呼叫C#dll

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

酒肉穿腸過 佛祖心中留 世人若學我 如同入魔道