当前位置: 首页 > news >正文

solidworks插件 执行回调这个参数是string是怎么变成方法的

好问题!让我查看一下这个字符串是如何被 SolidWorks 解析并调用到实际方法的。

现在我明白了!让我解释一下这个字符串是如何变成方法调用的:

关键机制:SolidWorks 的回调函数解析

这个字符串参数"FunctionProxy(1002)"能够被 SolidWorks 识别并调用,关键在于第66 行的代码:

swApp.SetAddinCallbackInfo(0,this,addinCookieID);

工作原理:

  1. 设置回调上下文addin.cs第 66 行)

    • SetAddinCallbackInfo告诉 SolidWorks:“这个插件对象(this)上有可以调用的方法”
    • 参数this就是AddinStudy实例,它是ISwAddin的实现类
  2. 字符串格式约定

    • SolidWorks 使用 .NET 的反射机制来解析这个字符串
    • 格式:"方法名 (参数)"
    • 当用户点击菜单时,SolidWorks 会:
      • 解析字符串得到方法名FunctionProxy和参数"1002"
      • 在插件对象(AddinStudy)上查找匹配的公共方法
      • 调用该方法并传入参数
  3. 方法签名要求

    publicvoidFunctionProxy(stringdata)// 必须是 public,接受 string 参数{intcommandId=int.Parse(data);if(_commandRegistry.TryGetValue(commandId,outvarmethod)){method.Invoke(this,null);// 通过反射调用实际的方法}}
  4. 完整的调用链

    用户点击菜单 → SolidWorks 解析 "FunctionProxy(1002)" → 调用 AddinStudy.FunctionProxy("1002") → FunctionProxy 解析出 commandId=1002 → 从 _commandRegistry 字典中找到对应的 MethodInfo → 通过 reflection.Invoke() 调用实际的 Drw2Dwg() 或 NewDrw() 方法

为什么需要这样设计?

这是 SolidWorks API 的设计模式:

  • 命令注册时:提供方法名字符串(编译时无法验证)
  • 命令执行时:SolidWorks 通过反射动态调用
  • 优势:支持运行时动态修改命令行为
  • 劣势:没有编译时检查,容易拼写错误

类似的回调字符串还有:

  • "EnableFunction(1002)"- 用于检查命令是否可用
  • 对应方法:public int EnableFunction(string data)

这就是 SolidWorks COM 插件系统的标准回调机制!

http://www.jsqmd.com/news/523092/

相关文章:

  • 2026年云南型钢生产厂家TOP5实力解析:以品质筑牢根基赋能工程全场景 - 深度智识库
  • 把 AI 当效率武器,用实战练真本事!
  • PHP-Resque部署指南:生产环境配置与监控方案
  • IJPay证书管理完全手册:从申请到部署的全流程指南
  • Go语言错误处理革命:从29934号提案看Go 2的错误值设计
  • ELF文件格式解析:嵌入式ARM固件的链接、加载与执行机制
  • Coding Plan技术解析:AI编程时代的成本优化与效率革命
  • 文脉定序系统内网穿透方案:安全访问本地部署的排序服务
  • 分析深圳太阳能曝气机口碑,哪家比较靠谱 - 工业品网
  • 2026年 角钢/槽钢/工字钢/H型钢/扁钢厂家实力推荐榜:冷镀锌、热轧、Q235B等全品类钢材源头工厂深度解析 - 品牌企业推荐师(官方)
  • 2026年钢塑土工格栅厂家推荐:山东联铭工程材料,双向土工格栅/玻纤土工格栅/PET土工格栅厂家精选 - 品牌推荐官
  • 306. 累加数(dfs回溯)
  • 从二本逆袭985:我的科软考研实战攻略
  • Windows10下SVN小绿勾消失?5分钟教你用注册表编辑器搞定(附详细截图)
  • Win11下VMware配置Ubuntu虚拟机的完整指南
  • 大数据领域分布式存储的分布式NFT数据管理
  • 62:AI多语言神谕生成:文本生成模型与TTS语音合成基础
  • 拼多多卖家必看:用webcrawl监控竞品销量的3种高阶玩法(最新版教程)
  • 51单片机土壤湿度检测及自动浇花系统
  • 厄瓜多尔空运专线服务商盘点:连接中国与南美的空中桥梁 - 时事观察官
  • pbrt-v4体积渲染技术深度解析:从零实现物理精确的烟雾和云彩效果
  • Ace Admin 模板:10个常见问题终极解决方案指南
  • 【MySQL】SQL 优化:关联查询优化
  • CD32.【C++ Dev】类和对象(22) 内存管理(下)
  • 一天一个Python库:oauthlib - 轻松构建OAuth客户端和服务器
  • 2026年主数据管理厂家全面推荐,主流系统供应商怎么挑选 - 品牌2026
  • UART串口通信协议
  • 大学生HTML期末大作业——HTML+CSS+JavaScript购物商城(家具)
  • Vue中el-cascader多选级联选择器的终极指南:如何精准获取最后一级数据
  • GEO优化系统开发避坑指南:如何避免数据跨境传输的法律风险?