cefsharp 93.1.140 如何在js中暴露c#类
从cefsharp79版本开始,旧的RegisterJsObject方法被删除了。
也就是说想使用79以后的版本,就必须更新js暴露c#对象的方法了。由于79之前的注册方法是不需要在js中进行注册的,在93版本上如何在不改动前端页面的基础上实现内核升级咧,话不多说上代码:
CefSharpSettings.WcfEnabled = true;
CWBrowser.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
CWBrowser.JavascriptObjectRepository.NameConverter = new MyNameConverter();
CWBrowser.JavascriptObjectRepository.Register("cefCardReader", new CefCardReader(), isAsync: false);
这样就能完美实现C#内注册的向前兼容,不用改动任务前端调用逻辑。
这里面有一个注意的地方,就是默认注册时会把方法的首字母转换成小写,我们之前的项目里面有些方法做了小写转换,有些去掉了小写转换,为了兼容需要自定义一个NameConverter,去实现自定义大小写转换,这边我自定义了一个MyNameConverter类,代码内容如下:
public class MyNameConverter : IJavascriptNameConverter{public string ConvertReturnedObjectPropertyAndFieldToNameJavascript(MemberInfo memberInfo){return ConvertToJavascript(memberInfo);}public string ConvertToJavascript(MemberInfo memberInfo){if ("CefCardReader".Equals(memberInfo.DeclaringType.Name)){string name = memberInfo.Name;if (name.Length == 1){return name;}if (name.All(char.IsUpper)){return name;}var firstHalf = name.Substring(0, 1);var remainingHalf = name.Substring(1);return firstHalf.ToLowerInvariant() + remainingHalf;}return memberInfo.Name;}}
将需要转换的方法进行转换,不需要进行转换的不进行转换。
最后还有一个注意事项,就是注册方法要放在ChromiumWebBrowser实例添加到控件之前,否则会注册不成功。
相关文章:
cefsharp 93.1.140 如何在js中暴露c#类
从cefsharp79版本开始,旧的RegisterJsObject方法被删除了。 也就是说想使用79以后的版本,就必须更新js暴露c#对象的方法了。由于79之前的注册方法是不需要在js中进行注册的,在93版本上如何在不改动前端页面的基础上实现内核升级咧,…...
同一台Linux同时安装MYSQL5.7和MYSQL8(第一篇)
在一台Linxu上面同时安装mysql5.7和mysql8.0的步骤,记录一下,方便后续回顾,后续文章之后会接着介绍搭建两台虚拟机一主一从的架构。 其中配置的文件名称、目录、端口号、IP地址要根据自己电脑的实际情况进行更改。 安装完成后效果 [rootzong…...
【CSS】解决上层盒子遮挡下层图片点击事件的三种方法
1. Pointer Events 属性 CSS 的 pointer-events 属性是一个强大的工具,可以控制元素是否接收用户的交互事件。通过将上层盒子的 pointer-events 设置为 none,我们可以确保它不会阻止下层图片的点击事件。 .upper-box {z-index: 999; /* 设置更高的 z-i…...
力扣每日一题 ---- 2906. 构造乘积矩阵
这题很简单(一下就能想到是前缀和的提米),但是在处理12345上面需要仔细一点,本来我最开始想到的时候全部累乘在除掉当前数,但是这样就没有把12345考虑进去,如果他本身是12345的话,那么除他以外的乘积并不一定是0&#…...
Tomcat学习
一、入门 在webapp里面必须先创建一个文件夹,文件夹里面放的内容,才会被访问到。 创建一个javaweb项目后 二、servlet 1.概述 2.servlet生命周期 3.servlet实例的创建时机 4.Servlet实例的初始化参数 5.HTTP状态码 6.servelet返回JSON数据 7.服务端设置…...
Linux系统上搭建高可用Kafka集群(使用自带的zookeeper)
本次在CentOS7.6上搭建Kafka集群 Apache Kafka 是一个高吞吐量的分布式消息系统,被广泛应用于大规模数据处理和实时数据管道中。本文将介绍在CentOS操作系统上搭建Kafka集群的过程,以便于构建可靠的消息处理平台。 文件分享(KafkaUI、kafka…...
WebSocket在node端和客户端的使用
摘要 如果想要实现一个聊天的功能,就会想到使用WebSocket来搭建。那如果没有WebSocet的时候,我们会以什么样的思路来实现聊天功能呢? 假如有一个A页面 和 B页面进行通信,当A发送信息后,我们可以将信息存储在文件或者…...
ENVI IDL:如何将txt文本文件转化为GeoTIFF文件?
01 前言 此处的文本文件形式如下: 里面包含了众多点位信息(不是站点数据),我们需要依据上述点的经纬度信息放到对应位置的像素点位置,放置完后如下: 可以发现,还存在部分缺失值,我们…...
北邮22级信通院数电:Verilog-FPGA(9)第九周实验(2)实现下降沿触发的JK触发器(带异步复位和置位功能)
北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 JK.v module JK (input clk,input J,input K,input…...
pyqt5UI同步加载
问题记录:pyqt5 怎样实现修改ui而不改变py代码,例如一个文件存入ui代码,另一个文件引入ui代码 起因:由于在写一个漏扫工具,由于ui的平频繁改动导致主体代码结构变动,所以先有没有方法能够不改变主题代码&am…...
CentOS 7 安装 Redis 5 (单机 6379)
CentOS 7 安装 Redis 5 (单机 6379) 自己准备好 Redis 5 的安装包并上传至 /opt/ 下的 redis 文件夹下: cd /opt mkdir redis cd redis准备好 Redis 所需的编译环境: yum -y install gcc yum -y install gcc-c解压上传的 Redis…...
sqlplus set参数大区
通过设置不同的SET参数,可以定制SQLPlus的行为和输出格式: SET 参数描述SET AUTOTRACE显示SQL语句的执行计划和统计信息,用于性能优化。SET FEEDBACK控制是否显示SQL语句执行的行数,可提高结果可读性。SET LINESIZE设置每行的最大…...
从0到0.01入门React | 006.精选 React 面试题
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…...
GeoTools实战指南: 处理矢量文件中多多边形的MultiPolygon空洞问题
目录 GeoTools实战指南: 处理矢量文件中多多边形的MultiPolygon空洞问题背景思路分析代码实现引入依赖读取并遍历矢量文件处理并“缝合”一个多边形的内外环结果保存到新的矢量文件中完整代码效果展示仓库代码地址GeoTools实战指南: 处理矢量文件中多多边形的MultiPolygon空洞问…...
javaSE学习笔记(五)集合框架-Collection,List,Set,Map,HashMap,Hashtable,ConcurrentHashMap
目录 四、集合框架 1.集合概述 集合的作用 集合和数组的区别 集合继承体系 数组和链表 数组集合 链表集合 2.Collection 方法 集合遍历 并发修改异常 3.List List集合的特有功能(核心是索引) 集合遍历 并发修改异常产生解决方案ListItera…...
web3 React dapp项目通过事件从区块链中拿到 已取消 已完成 和所有的订单数据 并存入redux中
好 上文web3通过antd 在React dapp中构建订单组件基本结构我们算是把一个基本的订单组件展示做出来了 然后 我们继续 起一下环境先 ganache 终端运行 ganache -dMetaMask 登录一下 然后 打开项目 发布一下合约 truffle migrate --reset然后 运行一下 测试脚本 转入交易所 E…...
25、Flink 的table api与sql之函数(自定义函数示例)
Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...
MybatisPlus —注解汇总
本文将介绍 MybatisPlus 注解包相关类详解(更多详细描述可点击查看源码注释) 注解类包源码:👉 mybatis-plus-annotation(opens new window) 一、#TableName(opens new window) 描述:表名注解,标识实体类对…...
flink对状态ttl进行单元测试
背景 在处理键值分区状态时,使用ttl设置过期时间是我们经常使用的,但是任何代码的修改都需要首先进行单元测试,本文就使用单元测试来验证一下状态ttl的设置是否正确 测试状态ttl超时的单元测试 首先看一下处理函数: // 处理函…...
Mac电脑安装打印机驱动
1.在打印机背面找到型号,当想要安装的驱动在官网找不到时可直接搜索该系列:比如MF系列 2.安装完成后需要添加打印机 当打印机和电脑在同一个WiFi下的时候查找打印机IP,输入IP后可以查到对应的打印机,添加后即可使用...
从立创商城选型到AD布局:一条龙搞定器件封装(以LTC3026为例的保姆级指南)
从立创商城选型到AD布局:LTC3026的封装实战全流程解析 作为一名硬件工程师,最让人头疼的莫过于在Altium Designer中画了半天原理图,导入PCB时却发现关键器件没有封装。这种时候,要么手动绘制封装——耗时且容易出错;要…...
StructBERT模型加速技巧:利用GPU CUDA进行批量推理优化
StructBERT模型加速技巧:利用GPU CUDA进行批量推理优化 你是不是也遇到过这样的情况?手头有成千上万条文本需要处理,比如做相似度计算、情感分析或者分类,但用模型一条一条地跑,速度慢得让人抓狂。看着GPU的利用率上不…...
Intv_ai_mk11 后端开发实战:构建高并发AI对话API服务
Intv_ai_mk11 后端开发实战:构建高并发AI对话API服务 1. 高并发AI服务的挑战与机遇 想象一下这样的场景:你的AI对话服务刚上线就迎来百万级用户涌入,每秒数千次请求让服务器不堪重负,响应时间从200ms飙升到5秒以上。这不是危言耸…...
S2-Pro与JDK1.8环境适配:企业老旧系统集成AI能力指南
S2-Pro与JDK1.8环境适配:企业老旧系统集成AI能力指南 1. 引言 "我们的核心业务系统还在用JDK1.8,能接入最新的AI能力吗?"这是很多技术负责人面临的现实困境。据统计,全球仍有超过65%的企业应用运行在Java 8环境中&…...
信号处理必看!CTFT/DTFT/DFT的三角关系图解与常见误区
信号处理必看!CTFT/DTFT/DFT的三角关系图解与常见误区 引言:为什么我们需要理解这三种变换的关系? 在数字信号处理的世界里,傅里叶变换家族就像是一把瑞士军刀,而CTFT(连续时间傅里叶变换)、DTF…...
STM32宏定义控制IO口实战:5分钟搞定LED闪烁(附完整代码)
STM32宏定义控制IO口实战:5分钟搞定LED闪烁(附完整代码) 引言 在嵌入式开发中,IO口控制是最基础也是最频繁的操作之一。对于STM32开发者来说,如何高效、简洁地管理GPIO端口直接影响着代码的可维护性和开发效率。传统方…...
从零开始:风电功率预测方向博士生的选刊投稿实战指南(附LetPub/SJR使用心得)
风电功率预测领域SCI期刊投稿策略:从工具使用到精准匹配的进阶指南 刚转入风电功率预测领域的博士生常面临一个现实困境:手头的研究成果究竟该投向哪本期刊?这个问题看似简单,实则暗藏玄机。我曾见过同实验室的师兄将一篇深度学习…...
如何实施企业SEO网站推广
如何实施企业SEO网站推广 在当今数字化时代,企业的网站推广已经不能忽视搜索引擎优化(SEO)。SEO不仅是提高网站在搜索结果中排名的关键手段,更是吸引潜在客户、转化流量成交的有效途径。如何实施企业SEO网站推广,以达…...
别再死记硬背了!ZBrush 2024最常用快捷键清单,附送一张桌面壁纸随时查
ZBrush 2024高效工作流:快捷键深度解析与实战应用指南 在数字雕塑的世界里,ZBrush早已成为行业标杆。但很多创作者在初次接触这款软件时,往往会被其复杂的快捷键系统所困扰。实际上,掌握快捷键并非简单的记忆游戏,而是…...
Deneyap Servo库:ESP32硬件PWM舵机精准控制方案
1. Deneyap Servo 库概述:面向 ESP32 系列平台的高精度舵机控制方案Deneyap Servo 是一个专为 Deneyap 系列开发板(基于 ESP32、ESP32-S2、ESP32-C3 和 ESP32-S3)设计的 Arduino 兼容舵机驱动库。该库并非简单封装 Arduino IDE 自带的Servo.h…...
