一、搭建electron-vue框架
前面有详细的介绍,这里就不再赘述了。Electron+Vue开发轻量级应用
二、准备一个dll文件,若有则可以跳过这一步
- vs新建一个类库项目,并将属性中的
输出类型
改为类库
image.png - 在项目中新建一个类,命名为Startup,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Some
{
public class Startup
{
public async Task<Object> Invoke(object input)
{
return Helper.SayHi("Invoke1:" + (string)input);
}
public async Task<Object> Invoke2(object input)
{
return Helper.SayHi("Invoke2:" + (string)input);
}
static class Helper
{
public static string SayHi(string param)
{
return ".NET Welcomes " + param;
}
}
}
}
- 项目右键生成,并将对应的dll拷贝到项目的static文件夹下
三、安装加载C#类库需要的工具包
# yarn add edge
cnpm install edge
四、在页面中调用dll中定义的方法
const edge = require('edge');
var invoke1=edge.func({
assemblyFile:path.join(__static, "Some.dll"),
typeName:"Some.Startup",
methodName: "Invoke"
})
invoke1("Call .net method from DLL",function(err,result)
{
if (err) throw err;
console.log(result);
});
其中,assemblyFile是dll文件的路径;typeName是
namespace.class
即命名空间.类名
;methodName是方法名称;
跟调用c++的类库相比,简直不要太简单了。