恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Assembly.GetExecutingAssembly()

  • 首页
  • 资讯中心
  • /
  • Assembly.GetExecutingAssembly()

相关资讯

实操攻略|毕业论文AIGC率高怎么修改?从检测到降AI,一套完整处理思路分享 2026/8/28 22:18:13
OFDM系统PAPR抑制:SLM与PTS算法原理及MATLAB仿真实现 2026/8/28 22:18:13
Simulink模块库全解析:从基础模块到专业工具箱的工程实践指南 2026/8/28 22:18:13

最新资讯

混合归一化:特征分布差异大时的工程实践与避坑指南
Keenable推出独立网页搜索API与Time Machine,赋能RAG与自动化采集
RSA性能优化:蒙哥马利模乘如何解决大数运算瓶颈
牛客三模编程题精讲:边界处理与解题节奏实战
Hugging Face 399美元鸭形机器人解析与LeRobot抓取实操
VirtualBox 安装 Ubuntu 20.04 虚拟机完整教程

今日推荐

云计算SPI三类服务模式是逐层抽象的关系:IaaS提供最底层的硬件资源,PaaS在IaaS基础上封装了开发运行环境,SaaS则进一步封装为可直接使用的软件
最新稳定版(Python 3.14):这是目前官方推荐的最新稳定版本。作为最后一个采用传统“3.x”命名的版本
etc目录下的profile.d文件目录设置环境变量和全局脚本shell

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Assembly.GetExecutingAssembly()

发布时间:2026/8/28 22:18:13
Assembly.GetExecutingAssembly() Assembly程序集在c#力就是编译后的.dll/.exe文件。立方体图标代表程序集类型代表这是一个反应编译后程序集元数据的类用来读取dll/exe里面的类型版本、资源等反射相关信息。Assembly.GetExecutingAssembly()方法含义获取包含当前正在执行这行代码的那个程序集dll/exe).关键区分 3 个极易搞混的静态方法表格方法作用Assembly.GetExecutingAssembly()执行当前这行代码所在的程序集Assembly.GetCallingAssembly()调用当前方法的上层调用方所在程序集Assembly.GetEntryAssembly()程序入口点所在程序集主 exe假设A.exe主程序调用 B.dll 里面的方法B.dll 内部执行Assembly.GetExecutingAssembly() 返回的是B.dll因为这行代码写在 B.dll 里面正在 B.dll 中执行。如果 B.dll 里面调用GetEntryAssembly()返回的是A.exe因为 A 是程序启动入口。常用业务场景// 获取当前代码所在dll/exe Assembly curAsm Assembly.GetExecutingAssembly(); // 1. 获取当前程序集版本号 var ver curAsm.GetName().Version; // 2. 读取嵌入资源内嵌在dll里的文件 var stream curAsm.GetManifestResourceStream(xxx.xxx.txt); // 3. 获取当前程序集所有类型做反射扫描插件、自动注册 var allTypes curAsm.GetTypes();GetExecutingAssembly()拿到写这行代码的那个 dll/exe 程序集对象用于反射读取版本、内嵌资源、扫描类等操作。user32.dll :Window操作系统核心用户模块所有窗口、弹窗、按钮、窗口显示/隐藏/置顶的API都在这里。什么是序列化与反序列化在 C# 程序内部数据是存放在“对象Object”里的比如咱们之前聊过的TemperatureModel类。但是网线和文件是不认识 C# 对象的它们只认纯文本。序列化 (Serialization)就是“打包发货”。把 C# 内存里活生生的对象按照特定的格式比如 JSON 格式变成一串纯文本字符串。这样就可以通过网络发送出去或者保存在硬盘里。反序列化 (Deserialization)就是“拆开快递”。把从网络上接收到的 JSON 纯文本字符串重新转换回 C# 程序能直接操作的对象模型。Newtonsoft.Json.Linq 到底是干嘛的Newtonsoft.Json是 C# 中最流行、最强大的 JSON 处理工具包。而它里面的Linq命名空间主要包含JObject、JArray等功能则是一把“免预制的万能拆箱刀”。在常规的反序列化中为了接收数据你必须提前在 C# 里写好一个与 JSON 结构一模一样的实体类Model。但这有时候会很痛苦对方发来的 JSON 数据极其庞大嵌套了十几层。你其实只需要里面的一两个小数据比如仅仅需要一个“温度”值完全不想费时费力去写一个庞杂的实体类。这就是Newtonsoft.Json.Linq登场的时刻它允许你不需要提前写任何实体类直接在内存里动态解析 JSON 字符串像查字典一样去提取你想要的内容。️ 直观的“妙用”对比假设云平台给你发来了一段字符串{Device: Sensor1, Data: {Temp: 35.5}}使用Linq里的JObject你可以像剥洋葱一样极其灵活地直接抓取想要的数据代码非常清爽// 1. 把纯文本直接当做动态 JSON 对象解析JObject jsonObj JObject.Parse(jsonString);// 2. 像查字典一样一层一层直接提取想要的数字double temp (double)jsonObj[Data][Temp];完全不需要建任何类用中括号[名字]就能把隐藏在深处的35.5精准提取出来Newtonsoft.Json又叫Json.NET .NET生态最流行的第三方JSON库现在虽然微软有自带的System.Text.Json,但大量老项目、工业上位机项目依旧广泛使用Newtonsoft.Json。Newtonsoft.Json.Linq是它下面的LINQ to Json 子命名空间专门用来动态读写JSON不需要预先定义实体类。1、完整序列化映射实体类模型using Newtownsoft.Json;2、LINQ to JSON 动态操作JSON对象不需要实体。using Newtonsoft.Json.Linq命名空间用途核心类Newtonsoft.Json把对象 ↔ JSON 字符串序列化 / 反序列化JsonConvertNewtonsoft.Json.Linq动态解析、构造、查询 JSON不用写 model 类JObject、JArray、JToken、JValue2、核心类来自Newtonsoft.Json.LinqJObject代表一个 JSON 对象{ name:张三 }JArray代表 JSON 数组[1,2,3]JToken所有 JSON 节点的基类可以代表对象、数组、属性、值万能节点JValue简单值字符串、数字、bool、null✨使用场景什么时候要用Newtonsoft.Json.Linq不想定义实体 class但是要读取 / 修改 json 里面某几个字段比如你拿到一段 JSON只需要取其中 1‑2 个字段不想新建一大堆实体类就用JObject动态解析。示例 1解析 JSON 字符串不用实体类using Newtonsoft.Json.Linq; string jsonText { DeviceId: DEV001, Status: 1, DataList:[11,22,33] }; // 将json文本解析成JObject JObject jObj JObject.Parse(jsonText); // 读取字段 string devId (string)jObj[DeviceId]; int status (int)jObj[Status]; // 获取数组 JArray JArray arr (JArray)jObj[DataList]; int first (int)arr[0]; //11 // 修改字段 jObj[Status] 2; //转回json字符串 string newJson jObj.ToString();示例 2动态组装 JSONJObject obj new JObject(); obj[Code] 0; obj[Msg] OK; JArray arr new JArray(); arr.Add(100); arr.Add(200); obj[Data] arr; string json obj.ToString(); /*输出 { Code: 0, Msg: OK, Data: [100, 200] } */SqlSugarHelper sql SqlSugarHelper.GetInstance( jObject[dev][DB][tableName].ToString(), jObject[dev][DB][ip].ToString(), jObject[dev][DB][user].ToString(), jObject[dev][DB][pwd].ToString(), jObject[dev][DB][port].ToString() );这是SqlSugar 封装工具类 Newtonsoft.Json.Linq (JObject)组合的数据库初始化代码常见于工业上位机、设备后台程序从 JSON 配置读取数据库参数拿到数据库操作 Helper 实例1、逐个拆解jObject[dev][DB][tableName]jObject就是来自Newtonsoft.Json.Linq的Jobject对象JSON 结构大概是这样配置文件 / 报文{ dev: { DB: { tableName: MyDeviceDb, ip: 127.0.0.1, user: root, pwd: 123456, port: 3306 } } }jObject[dev]→ 获取 dev 节点jObject[dev][DB]→ 获取 dev 下面 DB 数据库配置节点.ToString()把 JToken 节点转为普通字符串。②SqlSugarHelper.GetInstance(...)SqlSugarHelper项目自己封装的静态帮助类不是 SqlSugar 原生类。 SqlSugar 原生是SqlSugarClient项目做了一层包装做成单例模式。GetInstance()静态方法获取 Helper 单例实例传入数据库 5 个参数GetInstance(tableName, ip, user, pwd, port); //参数顺序 //1.tableName数据库名注意变量名容易误导不是表名table是Database数据库名 //2.ip数据库服务器IP地址 //3.user数据库账号 //4.pwd数据库密码 //5.port数据库端口号mysql一般3306controlTaskClassControlTaskFactrory.GetInstance() .selectProcess( jObject[dev][dllName].ToString(), jObject[dev][className].ToString());private void SendDriverT(ControlTaskClass task, ListT list){if (task null) { return; }if (list null || list.Count 0) { return; }Listobject a list.Select(it (object)it).ToList();task.DeltransferDriver?.Invoke(a);}

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号