自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(338)
  • 资源 (5)
  • 收藏
  • 关注

原创 .NET依赖注入IOC你了解吗?

依赖注入是一种设计模式和软件设计原则,用于实现 控制反转。它的核心思想是:将对象所依赖的其他对象的创建和管理职责从对象内部转移到外部容器或框架,从而降低代码的耦合度,提高可测试性、可维护性和灵活性。

2025-07-21 19:12:44 2449 2

原创 Blazor-表单提交的艺术:如何优雅地实现 (下)

本文对比了Blazor框架中<EditForm>组件与原生HTML <form>的使用差异。<EditForm>通过Model属性关联数据模型,支持双向数据绑定和内置验证机制,提供OnSubmit等事件处理,无需整页刷新,优化了SPA体验。而原生<form>需要手动处理数据绑定和验证,默认会整页刷新。文章还展示了交互式SSR和静态SSR两种模式下<EditForm>的具体实现方法,包括模型绑定、表单提交和参数配置。通过功能对比,说明了<Edi

2025-06-06 13:20:18 1338 1

原创 Blazor-表单提交的艺术:如何优雅地实现 (上)

本文介绍了Blazor中的三种表单提交方式:1) 传统HTML表单提交,使用标准HTML表单元素但会导致页面刷新;2) 交互式SSR提交,采用@bind双向绑定和@onsubmit事件处理,支持防伪令牌(AntiforgeryToken)防止CSRF攻击;3) 静态SSR提交,使用[SupplyParameterFromForm]属性绑定模型。三种方式各适用于不同场景,其中SSR方式能更好地与Blazor集成,避免页面刷新。代码示例展示了表单定义、字段绑定和提交处理的具体实现。

2025-06-06 09:29:54 1023 2

原创 Blazor-组件路由事件

导航正在发生之前运行,导航还未发生转向,还未跳转到目标 URL,可在此方法注册的事件处理程序中进行拦截,可阻止导航或进一步转向。在当前页面上单击链接或通过代码执行 NavigateTo()方法都可以转向目标 URL,但要注意如下事项:(1),通过单击链接或通过代码执行NavigateTo()方法都可以转向目标 URL,并且都会触发RegisterLocationChangingHandler()方法注册的导航事件。(2) 在中,任何呈现模式的交互位置为。

2025-03-24 00:31:40 946

原创 .NET Flee 字符串表达式动态解析,怎么性能优化!!

Flee (支持 Net6.0, Net5.0, Netstandard2.1, Netstandard2.0)动态解析的框架是有几个的,个人先使用了DynamicExpresso,但是需求中是需要支持IF/ELSE的,DynamicExpresso中支持三目运算,可以代替IF/ELSE,需要对字符串表达式进行IF/ELSE到三目运算的转换才能使用,之后发现了Flee直接支持。DynamicExpresso和Flee相比较,个人感觉Flee的性能更好,支持的功能也比较多。

2022-09-08 16:02:17 1388

原创 .NET代码格式化工具推荐!!!

文章摘要:本文介绍了代码格式化的重要性,包括提升可读性和保证团队一致性。重点推荐了XAML和CS文件的格式化工具:XAML Styler和CSharpier,展示了它们在Visual Studio和Rider中的使用效果,并验证了跨平台格式化结果的一致性。文章最后提供了两个相关生产力工具的往期推荐链接。(149字)

2025-11-19 00:38:55 241

原创 生产力工具推荐-Microsoft PowerToys

用于自定义 Windows 的实用工具,Microsoft PowerToys是微软官方推出的免费开源工具集,专为Windows 10/11设计,旨在通过20+个实用工具弥补系统原生功能的不足,被用户誉为“Windows瑞士军刀”。无论是开发者、设计师还是办公党,它都能显著提升操作效率。

2025-08-12 13:02:50 460

原创 NSubstitute单元测试Mock框架,开启你单元测试的学习!

本文介绍了使用NSubstitute和FluentAssertions进行单元测试的方法。以TestService和IApiService为例,展示了如何创建Mock对象、设置参数匹配器(包括任意值和限定值)、配置返回值、模拟异常抛出,以及验证方法调用次数。通过具体代码示例演示了单元测试的实现过程,包括测试用例的编写和断言验证。文章还提及了更深入的Mock功能可通过官方文档学习,并推荐了相关技术文章。这些技术要点为.NET开发中的单元测试提供了实用指导。

2025-08-12 02:12:23 1223 2

原创 WPF-开源Icon库IconPacks.Browser 推荐来啦!!你值得拥有

摘要: 推荐开源图标库IconPacks.Browser,解决WPF项目中图标管理混乱、重复添加的问题。该工具整合了多个主流图标库(如Material Design、Font Awesome),提供可视化预览、按需搜索和属性调整功能,支持一键生成XAML代码。通过NuGet安装MahApps.Metro.IconPacks主包或子包即可快速集成,显著提升开发效率。内置的图标浏览器还能实时调整颜色和尺寸,生成可直接使用的代码片段,是优化WPF项目图标管理的理想解决方案。

2025-08-05 23:50:35 206

原创 一文掌握 C# Lazy:延迟加载利器

在日常开发中,你是否遇到过这些问题?● 程序启动缓慢,因为初始化了大量可能用不到的资源?● 某个大对象创建耗时,拖累了整个模块的响应速度?● 想写线程安全的单例,却被双重检查锁搞得头晕眼花?Lazy 正是 C# 为解决这类问题而生的优雅方案!它通过 “延迟初始化”** 的核心机制,将对象的创建推迟到第一次真正被访问的时刻,从而显著提升程序效率与资源利用率。今天,我们就来深入探讨下这个性能优化的利器。

2025-08-04 23:59:28 983 1

原创 WPF-CommunityToolkit.Mvvm框架简化你的代码

本文介绍了MVVM框架的核心功能与实现方式。该框架具备跨平台特性(支持.NET Standard 2.0/2.1和.NET 6)、模块化设计和现代化高性能特点,通过源码生成器自动生成属性通知和命令代码。重点解析了ObservableProperty和RelayCommand特性对代码的简化效果,以及ObservableObject和ObservableRecipient基类的使用场景。文章还涉及消息机制(注册、发送、注销)的实战应用,并推荐结合.NET官方IOC容器使用。最后提供了相关技术文章的扩展阅读链接

2025-08-04 21:47:48 888 1

原创 掌握Autofac:IOC容器实战指南

Autofa也是一款很流行的IOC容器:那如何使用?第三方的IOC容器;1.Nuget引入程序包● Autofac2.创建一个ContainerBuilder3.注册抽象和实现关系4.Build一下,得到IContainer容器5.通过容器获取服务实例6.获取服务。

2025-07-23 23:59:44 526

原创 .NET-键控服务依赖注入

.NET 8键控服务依赖注入简介 当同一接口需要多个实现时,.NET 8引入的键控服务依赖注入(Keyed DI)提供了解决方案。通过为不同实现分配唯一键值(如"Fun1"、"Fun2"),可使用AddKeyedSingleton注册服务,并通过[FromKeyedServices]特性或IServiceProvider.GetRequiredKeyedService()按键解析。建议使用nameof或枚举替代硬编码字符串作为键值,提高代码可维护性。该特性弥补了.NE

2025-07-23 23:42:38 516

原创 WPF-引用不同位置的文件URL写法,你都了解吗?

摘要: 本文详细介绍了WPF中四种资源文件的pack URI格式:1)本地程序集资源文件使用application:///授权和相对路径;2)引用程序集资源文件需包含程序集短名、版本、公钥等信息;3)内容文件URI基于应用程序可执行文件位置;4)源站点文件使用siteoforigin:///授权。每种类型都提供了典型示例,包括根目录和子目录下的文件路径写法。特别指出引用程序集URI仅支持application授权,不支持siteoforigin授权。

2025-07-22 23:58:46 408

原创 WPF-好用的WPF UI组件库推荐来啦!

摘要: 推荐WPF组件库HandyControl,支持.NET 5.0-8.0及Framework 4.0-4.8.1,UI美观且易用。集成步骤:1)通过NuGet安装;2)在App.xaml中添加资源引用;3)引入命名空间即可使用。提供丰富组件(如图片展示的控件效果),官方文档详见GitHub主页及文档网站。适合需要快速构建现代化WPF应用的开发者。

2025-07-22 23:18:26 436

原创 WinForm-免费,可商用的WinForm UI框架推荐

AntdUI是一款基于Ant Design设计语言的WinForm UI组件库,将现代前端风格引入桌面应用开发。采用纯GDI绘图,无需图片资源,支持AOT编译,兼容.NET Framework 4.0及以上版本和.NET 6.0/9.0。该开源库提供美观易用的控件,适用于商业项目开发,效果展示包括多种UI组件,整体设计风格简洁现代。项目地址:https://gitee.com/antdui/AntdUI。

2025-07-21 22:28:53 681

原创 Blazor-内置输入组件

本文介绍了几种常见的封装输入组件,包括:复选框(InputCheckbox)、日期选择框(InputDate)、文件上传(InputFile)、数字框(InputNumber)、单选按钮(InputRadio)、单选按钮组(InputRadioGroup)、下拉菜单(InputSelect)、单行文本框(InputText)以及多行文本框(InputTextArea)。这些组件为表单开发提供了标准化的解决方案,简化了不同类型输入字段的开发工作。

2025-06-23 23:46:02 352

原创 Blazor-EditContext

Blazor中的EditContext是管理表单状态和验证的核心类,它跟踪表单字段修改状态并提供事件通知机制。通过绑定模型对象,可以初始化EditContext来监控表单字段变化。示例展示了EditContext的基本用法,包括获取字段定义、使用OnFieldChanged事件响应字段值变化,以及如何在提交事件中处理EditContext参数。关键功能包括:1) 绑定模型对象来跟踪表单状态;2) 使用Field方法获取字段信息;3) 通过OnFieldChanged事件捕获字段变更;4) 在提交事件中直接使

2025-06-23 23:39:01 420

原创 Blazor-预呈现你了解吗?

Blazor预呈现技术通过在服务器端预先渲染页面提升WebAssembly应用的加载速度和SEO优化。它支持四种模式:None(静态)、Server(交互式SSR)、WebAssembly(交互式CSR)和Auto(Server+WebAssembly),其中后三种支持预呈现。开发人员可通过@rendermode参数控制预呈现行为,如禁用(prerender:false)或启用(prerender:true)该功能。预呈现实现了从静态HTML到交互式SPA的平滑过渡,同时允许组件在Server或WebAss

2025-06-09 13:31:07 480

原创 Blazor-Ant Design of Blazor快速开始

Ant Design Blazor是一个基于Blazor的开源UI组件库,提供Ant Design风格的界面元素。它支持快速创建项目,通过dotnet模板即可生成完整的前端解决方案。安装时使用dotnet new --install AntDesign.Templates命令,创建项目时可选择是否包含全部Pro页面(-f参数)、指定托管模型(-ho)和样式类型(--styles)。示例展示了如何创建包含完整Pro页面的MyAntDesignApp项目,并成功运行web应用。该框架适合需要快速构建企业级Bla

2025-06-09 11:29:51 680

原创 Blazor-NavigationLock组件

组件主要用于锁定导航,在当前页面导航到内部目标 URL 之前,会执行OnBeforeInternalNavigation 事件。在 OnBeforeInternalNavigation 事件中,具有一个LocationChangingContext 类型的参数,该类型的参数与使用RegisterLocationChangingHandler()方法注册的事件处理程序中的参数类型是一样的。

2025-03-25 17:18:06 515

原创 Blazor-Navigating 组件

Navigating组件,其功能是当 Blazor 应用程序在切换页面时的中间等待界面,可能由于网络缓慢,或其他原因导致。在App.razor中设置跳转等待过程中的界面,我们做一个延时的界面看看实际的效果。我们添加了一个跳转的延时操作。

2025-03-25 17:15:45 363

原创 Blazor-处理URL中查询参数

本次主要来说下通过对当前URL进行,添加、更改或删除一个或多个查询参数的U R L 字符串的方法。

2025-03-24 00:26:46 402

原创 Blazor-轻松掌握Blazor导航与URL处理

URl的获取使用 NavigationManager 的 Uri 属性获取当前页面的URI,内容简单我们直接来上代码我们在上面的代码中获取了绝对的url和基础url绝对URL基本URL。

2025-03-06 20:12:17 475

原创 Blazor-全局路由跳转事件

OnNavigateAsync获取或设置导航到新页面之前应调用的处理程序,是发生在导航到目标 URL 之前触发的事件。(1)在浏览器的地址栏中手动输入访问页面的 URL 会触发(2) 在应用中单击链接会触发,会触发。(3) 使用NavigationManager.NavigateTo()方法以代码的方式访问页面会触发。

2025-03-06 20:03:41 743

原创 Blazor-路由模板(下)

我们这里使用{id:int}限制路由,id为int类型,并且路由参数 id 对应的 Id 属性也必须是 int 类型。我们试试能否正常访问int类型路由可以正常访问使用字符串无法访问到该路由。

2025-03-05 21:20:35 555

原创 Blazor-路由模板(上)

Blazor 的路由模板是定义应用中不同页面或组件访问路径的一种方式。通过路由模板,你可以管理应用程序的导航结构,支持基本路由、参数路由、子路由和区域路由等功能。我们为访问组件使用如这个页面我们设置了路由为/demoPage/demoPage是可以直接访问 DemoPage.razor 组件的.

2025-03-05 21:16:07 983

原创 Blazor-使用ElementReference设置焦点

在Blazor中,ElementReference类型的作用是提供对HTML DOM元素的引用,以便在C#代码中通过JavaScript互操作(JS Interop)操作特定元素。在Razor中设置焦点我们需要用到ElementReference类型的变量,使用@ref指令引用到设置焦点HTML的元素。在代码中elementReference我们可以理解为就是input元素,相当于dom元素一样。

2025-03-04 18:04:33 265

原创 Blazor-Navigating组件

Navigating组件,功能是当 Blazor 应用程序在切换页面时的中间等待界面,可能由于网络缓慢,或其他原因导致。在App.razor中设置跳转等待过程中的界面,我们做一个延时的界面看看实际的效果。我们添加了一个跳转的延时操作。

2025-03-04 17:54:54 268

原创 Blazor-根级别级联值

我们在Program文件中注册了三个级联值,第一个级联值为设置名称,后面两个级联值都设置了名称注意:如果我们使用的是Auto的模式,那么需要注册两次才能进行使用,组件首次访问组件,组件使用InteractiveAuto呈现模式,该模式第一次访问该组件是交互式SSR,是在服务器上运行的,获取对象来自在主项目的 Program.cs 中注册的级联值。第二次及以后访问该组件,则是在浏览器的WebAssembly 中运行的,获取的对象值来自在*.Client 项目的Program.cs 中注册的级联值。

2025-03-03 20:15:07 1028

原创 Blazor-多属性赋值

我们可以使用@attributes标签对多属性值赋值进行简化,通过一个字典直接进行赋值,这个功能毕竟简单,我们直接用代码来做示例。

2025-03-03 20:11:57 419

原创 Blazor-父子组件传递任意参数

我们可以使用定义 IDictionary<string,object>类型的参数,并使用[Parameter(CaptureUnmatchedValues =true)]特性进行标注,这样在父组件中嵌套子组件时,可以任意的传递参数。在我们从父组件传参数给子组件时,可以通过子组件定义的[Parameter]特性的公开属性进行传值,但是当我们需要传递多个值的时候,就需要通过[Parameter]特性定义多个属性,有没有更简便的方式?我们通过运行结果可以看到,参数被正确的传递到了子组件。

2025-02-17 23:58:23 840 1

原创 Blazor-多属性赋值

Blazor开发中,@attributes指令通过字典展开简化了组件元素属性绑定。传统方式需逐个声明和绑定属性,而@attributes允许将属性集中管理在字典中,实现声明式注入。这种方法显著提升代码简洁性,支持动态扩展和批量管理属性,同时实现属性配置与渲染逻辑的解耦。两种方式最终渲染效果相同,但字典展开方式更易于维护和扩展,尤其适合需要动态修改或批量管理属性的场景。

2025-02-17 23:57:20 408

原创 WPF-APP全局生命周期事件

WPF事件体系概述 WPF事件系统主要包括生命周期事件、输入事件、路由事件和行为。生命周期事件涵盖应用程序从启动(Startup)到退出(Exit)全过程,包括导航相关事件(Navigating、Navigated等)和状态变化事件(Activated、Deactivated)。全局异常处理可通过DispatcherUnhandledException、AppDomain.UnhandledException和TaskScheduler.UnobservedTaskException三种方式实现,分别处理U

2025-02-16 23:29:26 441

原创 WPF-数据转换器

WPF数据转换器实现指南:分为单值转换器(IValueConverter)和多值转换器(IMultiValueConverter)两种。单值转换器支持1.基础数值转换(如数值大于100变红色)和2.参数化转换(如性别选择双向绑定)。多值转换器可实现多数据聚合(如三个文本框内容拼接)。对比显示:单值转换器适合简单场景,多值转换器适合复杂条件决策。两种转换器均支持双向绑定,是WPF数据绑定的重要扩展机制。

2025-02-16 23:23:52 462

原创 Blazor-设置组件焦点

在Blazor中,ElementReference类型的作用是提供对HTML DOM元素的引用,以便在C#代码中通过JavaScript互操作(JS Interop)操作特定元素。在Razor中设置焦点我们需要用到ElementReference类型的变量,使用@ref指令引用到设置焦点HTML的元素。在代码中elementReference我们可以理解为就是input元素,相当于dom元素一样。

2025-02-16 23:05:20 456

原创 .NET-随机数相关使用

.NET随机数生成新特性解析:1)线程安全的Random.Shared采用线程静态存储与锁混合机制,优化多线程性能;2)GetItems<T>()方法简化数组随机采样,无需预建索引序列;3)Shuffle<T>()提供集合乱序功能。这些新特性以更简洁的代码实现传统随机数功能,适用于高并发场景。文章还推荐了.NET键控服务依赖注入相关内容。

2025-02-14 23:58:45 450

原创 ASP.NET配置文件多种方式读取

ASP.NET Core项⽬默认的配置⽂件是appsettings.json,创建项⽬时就会⾃动⽣成这个⽂ 件,我们可以将⼀些配置信息存放在这个配置⽂件中,这样做的好处是当我们修改配置⽂件 时,不在需要重启应⽤,可以实现热更新。

2025-02-13 23:02:24 447

原创 Blazor-父子组件回调方法

在组件中,要实现从父组件向子组件传值,可以在父组件中给参数属性赋值。想要达成这一效果,需要在子组件中使用[Parameter]特性,将属性定义为参数类型的属性。

2025-02-13 10:29:08 409

原创 Blazor-事件参数

在Blazor 项目中,微软对事件的事件参数进行了封装,所有的事件参数类都必须继承 EventArgs 基类。如我们不清楚当前的方法封装的事件到底是什么类型的?我们可以使用EventArgs来接收参数,之后断点查看下EventArgs的子类类型,这样就可以判断出来事件的类型。我们这里使用的是@onclick可以看到封装的类型为MouseEventArgs在 Razor 组件中,事件参数只需要在事件处理程序上定义,在调用时无需要传入任何值。

2025-02-12 20:30:00 955

ethstatus_0.4.2.orig.tar.gz

ethstatus_0.4.2 工具

2020-05-05

java ee 6 libraries jar包

java ee 6 libraries jar包 java ee 6 libraries jar包 java ee 6 libraries jar包 java ee 6 libraries jar包

2017-09-07

NetAssist Socket网络调试工具

NetAssist Socket网络调试工具NetAssist Socket网络调试工具

2018-08-15

Serial Port Utility

Serial Port UtilitySerial Port UtilitySerial Port UtilitySerial Port UtilitySerial Port UtilitySerial Port Utility

2018-08-15

Comassistant串口调试工具

Comassistant串口调试工具Comassistant串口调试工具Comassistant串口调试工具Comassistant串口调试工具

2018-08-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除