08、electron调用C#类库的dll

一、搭建electron-vue框架

前面有详细的介绍,这里就不再赘述了。Electron+Vue开发轻量级应用

二、准备一个dll文件,若有则可以跳过这一步

  1. vs新建一个类库项目,并将属性中的输出类型改为类库
    image.png
  2. 在项目中新建一个类,命名为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;
            }
        }
    }
}
  1. 项目右键生成,并将对应的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++的类库相比,简直不要太简单了。

参考文档

1. node.js通过edge访问.net动态链接库

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容