- 博客(34)
- 收藏
- 关注
原创 Expression.Block详解
本文介绍了C#中Expression.Block方法创建块表达式(BlockExpression)的核心用法。块表达式类似代码块,可包含变量声明和多个顺序执行的表达式,最后返回末尾表达式结果。文章详细说明了其基本概念、核心作用、方法重载形式,并通过(a+b)*c的示例演示如何动态构建表达式树。此外还分析了块表达式的结构、应用场景(动态代码生成、ORM框架等)、与Lambda表达式的关系,以及变量作用域、类型一致性等注意事项。Expression.Block是表达式树编程的关键工具,支持运行时动态生成复杂逻辑
2025-07-18 11:49:50
408
原创 Expression父类给子类动态赋值
该代码创建了一个泛型方法CreateConverter,用于生成从基类TBase到子类TSub的对象转换器。方法通过表达式树动态构建转换逻辑:首先创建子类实例,然后将基类的可读写属性值复制到子类对象中。该转换器以Func<object,object>形式返回,适用于运行时类型转换场景,支持任何符合TSub:TBase约束的类。代码使用反射获取属性并进行表达式构建,最终编译为可执行委托。
2025-07-18 11:19:40
142
原创 GetType().AssemblyQualifiedName
C#中GetType().AssemblyQualifiedName返回包含程序集信息的完整类型名称,主要应用于8个场景:1.跨程序集类型反射;2.序列化/反序列化;3.配置文件类型引用;4.分布式系统类型标识;5.缓存键生成;6.依赖注入容器注册;7.代码生成与动态代理;8.插件系统。该属性确保类型唯一性,但需注意版本变更和跨平台兼容性问题,在仅需类型名称时可选用Type.FullName等替代方案。合理使用该属性可提高类型解析准确性。
2025-07-15 16:34:42
250
原创 Expression 类的静态方法
Expression.Call是C#中System.Linq.Expressions命名空间的重要方法,用于动态创建静态方法调用的表达式树节点。该方法接收四个参数:目标类型(Type)、方法名(string)、泛型类型参数(Type[]?)和参数表达式数组(Expression[]?)。它支持调用非泛型方法(如Math.Sqrt)和泛型方法,并能通过编译表达式树生成可执行的委托。典型应用场景包括动态查询构建(如EntityFramework)、运行时方法调用等。使用时需注意方法重载匹配、泛型方法处理(需先构
2025-07-15 16:24:31
408
原创 aspnetcore Mvc配置选项中的ModelMetadataDetailsProviders
ASP.NET Core中的ModelMetadataDetailsProviders是配置模型元数据的关键组件,它负责解析和提供模型属性的元数据(如数据类型、验证规则等)。系统内置了几种元数据提供程序(如DataAnnotationsMetadataProvider),同时也支持自定义实现IModelMetadataDetailsProvider接口的提供程序。开发者可以通过注册自定义提供程序实现动态显示名称、基于角色的验证规则等高级功能。元数据提供程序按注册顺序执行,后注册的优先级更高。使用时需注意性能
2025-07-14 15:49:36
778
原创 aspnetcore Mvc配置选项中的ModelBindingMessageProvider
ASP.NET Core中的MvcOptions.ModelBindingMessageProvider允许全局自定义模型绑定错误消息,提升用户体验。它支持覆盖默认验证提示(如"值无效")、实现多语言本地化,并保持错误风格统一。开发人员可在Startup.ConfigureServices中配置常见消息属性(如数值验证、必填项提示),通过委托或资源文件自定义内容。注意需正确处理消息占位符、保持客户端验证一致性,并避免复杂逻辑影响性能。该功能与DataAnnotations验证互补,共同构
2025-07-14 15:46:05
416
原创 ASP.NET Core中数据绑定原理实现详解
ASP.NET Core数据绑定机制解析 摘要: ASP.NET Core的数据绑定通过ValueProvider、ModelBinder和TypeConverter的协同工作,将HTTP请求数据映射到控制器参数或模型对象。核心流程包括:1)通过ValueProvider从请求源(表单、查询字符串等)提取数据;2)ModelBinder根据目标类型进行数据转换和模型填充;3)TypeConverter处理基础类型转换。系统支持复杂类型递归绑定和自定义扩展,通过ModelMetadata缓存优化性能,并内置多
2025-07-14 15:41:19
751
原创 DBeaver批量执行多条语句
摘要:在使用DBeaver批量插入数据时,可能出现执行报错问题。解决方法:右键数据库连接,编辑连接设置,将"allowMultiQueries"参数改为true,重新连接后即可正常执行批量插入。注意SQL语句间需要用分号分隔。该设置允许多条SQL语句同时执行,解决了批量插入失败的问题。
2025-06-07 10:00:42
1013
原创 DBeaver连接MySQL服务器保存Public Key Retrieval is not allowed
1、在新安装的windows客户端,远程连接出现“Public Key Retrieval is not allowed”报错内容。3、找到“驱动属性”-allowPublicKeyRetrieval。2、需要更改连接设置,右键服务器连接,然后选择 “编辑连接”。然后不会报这个错误了。
2025-05-28 11:24:24
232
原创 Redis的window版本发布成服务
Windows 版本的 Redis 可以配置为后台服务(Windows Service)运行,这样无需手动启动命令行窗口,系统启动时会自动运行 Redis 服务。# 绑定 IP(默认 127.0.0.1,如需远程访问可改为 0.0.0.0)注意:日志文件路径一定要用双反斜杠,不进行转义识别不了,并且服务无法启动。# 日志文件路径(建议使用绝对路径,避免服务启动时找不到)# 数据持久化配置(根据需求启用 RDB 或 AOF),并放入 Redis 安装目录(如。(方便区分服务配置)。
2025-05-27 18:45:44
716
原创 npm ERR! code CERT_HAS_EXPIRED:解决证书过期问题
npm ERR! code CERT_HAS_EXPIRED,解决证书过期问题
2025-01-10 17:21:23
371
原创 .NET 8 后台服务 IHostedService 与 BackgroundService
IHostedService 是一个简单的接口,用于实现后台服务。当需要实现自定义的托管服务时,可以通过实现这个接口来创建。该接口定义了两个方法:StartAsync(CancellationToken cancellationToken) 和 StopAsync(CancellationToken cancellationToken),分别用于启动和停止服务。
2024-11-12 15:20:45
702
原创 DBeaver中数据转储报错Authentication plugin ‘caching_sha2_password
2、DBeaver提供了自定义MySQL客户端的功能,那我的解决思路就是新增一个MySQL8的数据库文件mysql.exe和mysqldump.exe就可以了,需要找到MySQL的Windows平台的安装包,在其中添加数据库地址,选择Bin目录下的位置即可。如果觉得解压后的mysql8的文件夹太占空间可以删除/bin目录下的 mysqld.pdb文件,不影响使用。3、下载后解压压缩包,点击“添加数据库地址”按钮,选择新的MySQL8的所在目录。接下来就可以愉快的执行备份出来的sql脚本了。
2024-11-02 13:50:09
645
原创 mysql导入时出现“ERROR at line : Unknown command ‘\‘‘.“的解决办法
原因:因为导出时字符集的问题,解决方法如下:--default-character-set=utf8。
2024-11-02 13:45:29
1040
原创 (解决)vs中生成Resources.resx与Resources.Designer.cs生成不一致?
解决vs中生成Resources.resx与Resources.Designer.cs生成不一致
2023-12-27 15:27:59
2810
原创 精简小巧的数据库sqlite
sqlite是一款运行在内存中的关系型数据库,使用方便无需额外的服务器部署配置,用于简单应用开发十分的便利。支持的部署平台有linux,windows,android,Mac OS X。
2023-03-15 17:49:09
801
1
Snap包管理器,安装Certbot的包管理器
2023-01-13
免费好用的Gif录屏神器
2023-01-12
AccessDatabaseEngine 2010 Office system 驱动程序:数据连接组件
2023-01-04
AccessDatabaseEngine 2007 Office system 驱动程序:数据连接组件
2023-01-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人