Electron调用C#类库dll


新建vue项目

PowerShell 全选
vue ui

安装插件 vue-cli-plugin-electron-builder

Electron调用C#类库dll

安装完成后:

Electron调用C#类库dll

C#类库代码

  • 定义的方法必须是:public async Task<object> MyMethod(dynamic input) 
  • 如果输入参数为对象,需要用动态对象接收 dynamic 不然,会报错。类型转换失败
 定义的方法必须是:public async Task MyMethod(dynamic input)
  • 首先,这里的返回值必须是Task,不能是Task或者Task或者其他的什么,否则会报错。
  • 其次,参数数量只能是1个。不能写多个参数
  • 再次,参数如果是简单类型,例如int,string是可以的。但是当参数类型是自定义的类型,那么方法参数必须写dynamic 类型。不能是其他类型。即使是写成object也不行。也会报错
C# 全选
using System;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace YESWEB.Electron.PrintServer
{
    public class Test
    {
        /// <summary>
        /// 测试,调用winform弹窗
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public async Task<object> ShowWarning(object message)
        {
            return await Task.Run(() =>
             {
                 MessageBox.Show(message.ToString(), "提醒", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
                 return "调用成功";
             });

        }

        /// <summary>
        /// 测试1
        /// </summary>
        /// <param name="data">字符串数组</param>
        /// <returns>字符串</returns>
        public async Task<object> Test01(string[] data)
        {
            return await Task.Run(() => { return String.Join(",", data); });
        }
        public class P_Test3
        {
            public string Name { get; set; }
            public string Description { get; set; }
        }
        /// <summary>
        /// 测试2
        /// </summary>
        /// <param name="data">对象,必须是dynamic方式接收</param>
        /// <returns>字符串</returns>
        public async Task<object> Test02(dynamic input)
        {
            return await Task.Run(() => { return input.Name + ":" + input.Description; });
        }
        /// <summary>
        /// 测试3
        /// </summary>
        /// <param name="input">对象,必须是dynamic方式接收</param>
        /// <returns>对象</returns>
        public async Task<object> Test03(dynamic input)
        {
            return await Task.Run(() => { return input; });
        }
    }
}

调用dll

dll复制到项目目录 public/dll 目录中

Electron调用C#类库dll

导入:

JavaScript 全选
import edge from 'electron-edge-js'

调用方法

JavaScript 全选
testShowWarning () {
  const ShowWarning = edge.func({
	assemblyFile: 'public/dll/YESWEB.Electron.PrintServer.dll',
	typeName: "YESWEB.Electron.PrintServer.Test",
	methodName: "ShowWarning"
  })
  ShowWarning('Hello Electron', (error, value) => {
	console.log(error, value)
  })
}

 

参考:

vue+Electron开发桌面应用 - https://zhuanlan.zhihu.com/p/228691869

Electron edge.js配置-YES开发框架网 (yesdotnet.com)

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:Electron edge.js配置
下一篇:vue-cli4构建build时删除console和debugger
评论列表

发表评论

评论内容
昵称:
验证码:
验证码
关联文章

Electron调用C#dll
YESWEB POS开发调试
Epicor访问调用Function
C# winform选择dll文件
Electron edge.js配置
微信授权连接URL生成
EFCore官方扩展
C#去除DLL强命名
C# 静态获得 机密配置
LabVIEW生成.NET的DLL——C#下调用NI数据采集设备功能的一种方法 [原创www.cnblogs.com/helesheng]
winform项目提醒框扩展 MessageBoxHelper
.NET DLL反编译 JustDecompile
C#解析指定dll的app.config配置文件
YESWEB POS开发 Electron操作appdata配置信息
C#图片处理:ImageLibrary
SourceGenerator的应用: .Net多进程开发 - Juxtapose
桌面显示文件
仓库位选择
winform使用webBrowser,C#直接调用js函数,并且支持array数组
【荐】开源Winform控件:花木兰控件

热门标签
.NET Core .NET Reactor ag-grid AI发布 api安全 ASP.NET Core C#DLL加密 C#播放声音 C#代码混淆 C#代码加密 ChromeDriver Codex DateTime DBeaver devexpress devTool DLL混淆 edge.js EF EFCore Electron element-ui el-form el-table excel FastReport FileStream FolderBrowerDialog FolderSelectDialog form提交 git gridcontrol gridview input javascript json字符串 JS转换对象JSON jwt JWT授权 linq log Math MCP mitmproxy MVC MySQL Navicat netstat nginx node_modules NSwag Nuget Nuget镜像 number PowerShell pyinstaller python pythoncom python爬虫 python抓包 pywin32 redis Requests-html RestSharp Selenium sql SQL Server Swagger to-cms Visual Studio VSCode vue VueRouter vue路由 VUE页面通讯 Webpack Windows Windows服务 winform wmi xlrd yaml YESCMS YESWEB开发框架 白象 表单提交 播放声音 打开URL 代码混淆 弹窗提醒 端口占用 对象转换 分布式 公共字典 机器码 进程排查 静态资源 开发指南 路由参数 密钥 配置教程 配置文件 权限 人工智能 任务 任务调度 日期间隔 日志 日志记录 省市区 授权验证 数据库 四舍五入 文案 文件读取 文件夹选择 文件目录选择 问题排查 行政区域数据 页面通讯 中间件 CSharp 事务锁 工单系统 并发控制 重复提交 CMS Markdig Markdown markdown-it marked 技术选型 VS Code 开发工具 源代码管理 版本控制 Docker PostgreSQL 时区 部署排查 CMS架构 EF Core 主题系统 二次开发 插件系统 容器 运维命令 镜像清理 Linux NAS 远程挂载 飞牛 fnOS
联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码