elecron呼叫C#dll
阿新 • • 發佈:2021-11-23
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版本號/